Skocz do zawartości

Nie widoczny sprite


Rekomendowane odpowiedzi

Mam probel z 3D

 

Mam obj_ghost i chce zeby miał jakiś wygląd ! Ale tu pojawia się problem bo niewiem gdzie jest błąd ponieważ duszka wogule niewidać .

 

Oto skrypt na rysowanie

 

OBJ_GHOST

 

DRAW

GML
d3d_draw_wall(x-8*global.camsin,y-8*global.camcos,19,x+48*global.camsin,y+8*global.camcos,3,tex,1,1);

 

Gdzie tu jest błąd !

 

Jesli potrzeba więcej danych to napiszcie .

 

PS Obrazek ducha jest wielkośći 64x64 !

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

słuchaj, rówieśniku *ból serca*, w tym wyżej przytoczonym Twoim kodzie masz pięknie rozpisane parametry Twojego duszka. Jest tam też takie coś jak "tex". Jest to tzw zmienna, którą definiujemy w create tego duszka. A więc starczy, że w create dasz

GML
tex= sprite_get_texture(nazwatextury,0);
albo
GML
tex= background_get_texture(nazwatextury,0);
zależnie od tego, czy Twoja textura jest spritem, czy backgroundem. Pamiętaj też, by nigdy nie nazywać textury tak samo jak obiekt, ogólnie musisz pamiętać, by żadna nazwa w Twoim projekcie się nie powtarzała, nieważne czy to path, czy nawet skrypt

 

edit: skarbie, proszę zrób też coś z ortografią, bo poprawna polszczyzna źródłem sukcesów w życiu prywatnym i zawodowym

Odnośnik do komentarza
Udostępnij na innych stronach

W :

 

OBJ_GHOST :

 

CREATE:

GML
z = -60

tex = sprite_get_texture(spr_ghost,0)

z1 = z

z2 = z+12

zgrav = 0

 

STEP:

GML
z1 = z

z2 = z+12

zgrav -= 0.3

z += zgrav

 

if distance_to_object(obj_player) > 100

{

sound_play(snd_enemy_psycho)

}

 

DRAW:

GML
d3d_draw_wall(x-8*global.camsin,y-8*global.camcos,19,x+48*global.camsin,y+8*global.camcos,3,tex,1,1);

 

Oto wszystkie skrypty znajdujące się w OBJ_GHOST .

 

edit: skarbie, proszę zrób też coś z ortografią, bo poprawna polszczyzna źródłem sukcesów w życiu prywatnym i zawodowym

 

Na ortografię zawsze zwracam uwagę tylko że tego posta x2 wyżej pisałem z pośpiechu :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

czy Twoja textura na pewno nazywa się spr_ghost i czy na pewno jest spritem, a nie backgroundem? I czy nie ma może innego sprita o tej samej nazwie? W razie czego pisz na priv, możesz mi wysłać cały project i zobaczę co się nie klei

Odnośnik do komentarza
Udostępnij na innych stronach

A oto Kamera :) :

 

OBJ_PLAYER (to jest kamera tylko tak nazwałem ;) ) :

 

CREATE:

GML
friction =.2

zdirection = 0

xpre = 0

ypre = 0

dir = 0

d3d_start()

d3d_set_hidden(1)

d3d_set_lighting(0)

d3d_set_culling(0)

texture_set_interpolation(1)

d3d_set_fog(1,c_black,-1000,200)

sound_play(snd_play) // dzwięk odtwarzany podczas gry

global.camx = x;

global.camy = y;

global.camsin = sin(direction*pi/180);

global.camcos = cos(direction*pi/180);

 

STEP:

 

GML
dir -= (display_mouse_get_x()-display_get_width()/2)/8

zdirection += (display_mouse_get_y()-display_get_height()/2)/6

 

if (zdirection<-80)

zdirection=-80

else if (zdirection>80)

zdirection = 80

 

display_mouse_set(display_get_width()/2,display_get_height()/2)

 

Collision with OBJ_PARENT_WALL:

 

GML
{

x = xprevious

y = yprevious

if (abs(hspeed) >= abs(vspeed) && not place_meeting(x+hspeed,y,obj_parent_wall))

{ x += hspeed; exit;}

if (abs(vspeed) >= abs(hspeed) && not place_meeting(x,y+vspeed,obj_parent_wall))

{ y += vspeed; exit;}

speed = 0;

}

 

Keyboard W :

 

GML
motion_add(dir,.4)

speed=min(speed,2)

 

-^- S:

GML
motion_add(dir+180,.4)

speed=min(speed,2)

motion_add(dir+90,.4)

speed=min(speed,2)

 

-^- A:

 

GML
motion_add(dir+90,.4)

speed=min(speed,2)

 

-^- D :

 

GML
motion_add(dir+270,.4)

speed=min(speed,2)

 

i DRAW :

GML
d3d_set_projection(x,y,40,x+cos(dir*pi/180),y-sin(dir*pi/180),40-sin(zdirection*pi/180),0,0,1)

draw_set_alpha(1)

draw_set_color(c_white)

d3d_draw_floor(0,0,0,room_width,room_height,0,background_get_texture(bg_floor),room_width/8,room_height/8)

d3d_draw_floor(0,0,64,room_width,room_height,64,background_get_texture(bg_ceiling),room_width/8,room_height/8)

 

To chyba mój największy post :)

Odnośnik do komentarza
Udostępnij na innych stronach

Więc tak kamera używa: x+cos(dir*pi/180), y-sin(dir*pi/180) a wall próbujesz obracać do zmiennych global.camsin = sin(direction*pi/180);

global.camcos = cos(direction*pi/180); które nic nie robią bo są w create i w sumie tak z dupy tam są, tym bardziej że do obrotu kamerą używasz zmiennej dir a nie direction.

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra teraz inny problem :

 

Sprite jest ale nie obraca się w stronę gracza > Co tym razem !!

 

 

Wszystkie skrypty parę postów wyżej

 

:helpsmilie:

Nie jestem zbyt dobry w 3D, ponieważ stanąłem na rysowaniu ścian, sufitu, podłogi i poruszaniu kamery ale jedno wiem!

Jest ZNACZĄCA różnica między draw_wall, a draw_block, (nie pamiętam dokładnie, nazw funkcji). Zmień z draw_wall, na draw_block.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...