Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2018, 17:18   #1
Dezzy
Пользователь
 
Регистрация: 27.09.2018
Сообщений: 13
По умолчанию Delphi ping pong физика

Можете помочь сделать физику игры простейшую?
Вот код игры ping pong

Код:
var
  Form1: TForm1;
  PosX, PosY, VelX, VelY:single;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.FormCreate(Sender: TObject);
begin
randomize;
 PosX:=55;
 PosY:=50;
 VelX:=2;
 VelY:=3;
end;
 
procedure TForm1.shar;
begin
 PosX:=PosX+VelX;
 PosY:=PosY+VelY;
 
 
 if PosX > ClientWidth - Shape1.Width then
 VelX:=-VelX;
 
 
 if PosX < 0 then
 VelX:=-VelX;
 
 
 
 if PosY > ClientHeight - Shape1.Width then
 VelY:=-VelY;
 if PosY < 0 then
 VelY:=-VelY;
 
 
 
Shape1.Left:=round(PosX);
 
Shape1.Top:=round(PosY);
end;
 
 
procedure TForm1.Timer1Timer(Sender: TObject);
var
Overlay: Trect;
begin
shar;
 
 If InterSectRect(Overlay, Shape2.BoundsRect, Shape1.BoundsRect) then
begin
 VelX:=-VelX-random(5);
 VelY:=-VelY-random(5);
end;
 
// Условие для отбивания шарика компьютерным игроком
 If InterSectRect(Overlay, Shape3.BoundsRect, Shape1.BoundsRect) then
begin
 VelX:=-VelX-random(5);
 VelY:=-VelY-random(5);
end;
 
end;
 
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
Shape2.Top:=Mouse.CursorPos.Y - Form1.ClientOrigin.Y;
end;
 
procedure TForm1.Timer2Timer(Sender: TObject);
begin
 
if Shape3.Top > ClientHeight - Shape3.Height - 40 then
Shape3.Top:=Shape3.Top
else
begin
if Shape1.Top > Shape3.Top then
Shape3.Top:=Shape1.Top + Shape3.Width;
end;
 
if Shape1.Top < Shape3.Top then
Shape3.Top:=Shape1.Top - Shape3.Width;
end;
 
end.
_____
Код программы нужно выделять (форматировать) тегами [CODE][/CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 08.11.2018 в 17:21.
Dezzy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написал игру ping pong, но шарик застревает в ракетке Dezzy Общие вопросы Delphi 3 28.10.2018 12:46
Delphi Ping Halogen Работа с сетью в Delphi 1 29.01.2017 21:55
Ping-Pong anek Общие вопросы Delphi 3 12.05.2014 19:28
Ping в Delphi folkk Работа с сетью в Delphi 8 24.10.2010 17:02
Физика в Delphi Tesey Помощь студентам 0 05.01.2010 22:03