Вниз
Скачать: 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
1-96800
Pk
2003-01-20 12:52
2003.01.30
Одинаковые события форм


14-96943
cc43294
2003-01-11 15:27
2003.01.30
Не в тему


4-97100
kalishenko stas
2002-12-13 18:20
2003.01.30
DLL


1-96675
lightix
2003-01-21 16:35
2003.01.30
Программно изменить имя процедуры-обработчика события


14-96988
Wizard
2003-01-11 13:28
2003.01.30
Мастер




   Наверх