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 :)