Вниз
Скачать: CL | DM;

DELPHIX - 2d Engine   Найти похожие ветки 

← →
LM   (2002-07-28 23:51) [0]

Данные формулы для Engine x, y не верны.
как сделать так, чтобы Player всевремя находился в поле зрения?

procedure TPlayer.DoMove(MoveCount: Integer);

begin
inherited DoMove(MoveCount);
speed:=5;



if isLeft in MainForm.DXInput1.States then
Begin
angle:=angle-1;
x:=x+cos256(Angle)*speed/4;
y:=y+sin256(Angle)*speed/4;
end;

if isRight in MainForm.DXInput1.States then
Begin
angle:=angle+1;
x:=x+cos256(Angle)*speed/4;
y:=y+sin256(Angle)*speed/4;

end;



if isUp in MainForm.DXInput1.States then
Begin

if speed_foward<=7 then speed_foward:=speed_foward+0.1;

x:=x+cos256(Angle)*(speed_foward);
y:=y+sin256(Angle)*(speed_foward);


end;

if isDown in MainForm.DXInput1.States then
Begin
if speed_back<=3 then speed_back:=speed_back+0.05;

x:=x-cos256(Angle)*speed_back;
y:=y-sin256(Angle)*speed_back;

end;

if isButton1 in MainForm.DXInput1.States then
Begin
if speed_foward>0 then speed_foward:=speed_foward-0.2;
end;

collision;

Engine.X := ((-Player1.X-cos256(Angle))+Engine.Width div 2-Width div 16)+2 ;
Engine.Y := ((-Player1.Y-sin256(Angle))+Engine.Height div 2-Height div 16)+2 ;

end;


← →
LM   (2002-08-01 15:07) [1]

Народ, помогите плиз!
Может я не очень понятно обьяснил??:(


← →
cyborg ©   (2002-08-02 21:24) [2]

Скорей всего .... да!


← →
Daddy ©   (2002-08-05 13:00) [3]

Вот так спрайт(X,Y) будет всегда посередине экрана. Или я тоже не понял :)

DXSpriteEngine.X := -X + (DXSpriteEngine.Width div 2) - (Width div 2);
DXSpriteEngine.Y := -Y + (DXSpriteEngine.Height div 2) - (Height div 2);



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
14-97037
Snake2000
2003-01-13 15:34
2003.01.30
Не могу подключить сетевой диск


4-97104
boris2
2002-12-14 18:33
2003.01.30
окна


1-96707
крот
2003-01-21 10:05
2003.01.30
Окна и сообщения


1-96854
cibo
2003-01-21 10:17
2003.01.30
Компонент


3-96561
yaric
2003-01-10 17:55
2003.01.30
Проблема с IBQuery и DLL




   Наверх