Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > DelphiX


Автор: Yura_Matsuk 30.10.2004, 17:24
Как сделать в спрайтовой проге, использующей DelphiX что-то типа лабиринта для спрайтов, чтоб спрайт не мог ходить через стены.
Я думаю это где-то в DoCollision

Автор: Medved 30.10.2004, 23:17
Все правильно, обрабатывай DoCollision при столкновении персонажа со стенкой, и просто не перемещай объект.

Автор: Yura_Matsuk 31.10.2004, 10:16
Создаю:
Код
with TPlayerSprite.Create(Dxspriteengine1.Engine) do
begin
 PixelCheck := True;
 Image := form1.dxImageList1.Items.Find('player');
 x:=100;  y:=100;
 Width := image.Width;
 Height := Image.Height;
end;
with TImageSprite.Create(dxspriteengine1.Engine) do
begin
 PixelCheck := True;
 Image := form1.dxImageList1.Items.Find('border');
 x:=400;  y:=400;
 Width := image.Width;
 Height := Image.Height;
end;

Обрабатываю:
Код
procedure Tplayersprite.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
application.Terminate;
Collision;
end;

Спрайты на экране я вижу, но при столкновении DoCollision не вызывается. Мой TPlayerSprite просто проходит сверху border`a

Автор: Yura_Matsuk 31.10.2004, 13:03
Всем спасибо, вопрос решен. Просто я по своей забывчивости забыл в конце DoMove поставить собственно проверку на столкновения Collision.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)