Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DELPHIX - 2d Engine [Delphi]


LM ©   (2002-07-28 23:51:00) 

Данные формулы для 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;


Daddy   (2002-08-05 13:00:00) [1]

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

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


cyborg   (2002-08-02 21:24:00) [2]

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


LM   (2002-08-01 15:07:00) [3]

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо