Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
13 / 13 / 3
Регистрация: 30.06.2013
Сообщений: 168
1

Нанесение урона кораблю

24.10.2013, 12:08. Просмотров 683. Ответов 1
Метки нет (Все метки)


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
 TSpaceObject = class
  Image:TImage;
 
  procedure Process; virtual;
  constructor create(x, y, width, height:Integer; filename:string; container:Twincontrol);
  destructor Destroy;
  end;
 
 
    TAsteroid = class(TSpaceObject)
    speedy:Integer;
procedure Process; override;
constructor create( x, speed, width, height:Integer;  container:Twincontrol);
  end;
 
  TSpaceObjects = class (Tlist<TSpaceObject>)
      destructor Destroy;
 
  end;
  TMySpaceShip = class(TSpaceObject)
  speedx:Integer;
  procedure process;
 procedure MoveLeft;
 procedure MoveRight;
 constructor  Create(filename: string; container:TWincontrol);
  end;
  var
 
Form1: TForm1;
 
  objects:TSpaceObjects;
  SpaceShip:TMySpaceShip;
 health:integer;
implementation
 
{$R *.dfm}
 
{ TSpaceObject }
 
constructor TSpaceObject.create(x, y, width, height: Integer; filename: string; container:TWincontrol);
begin
  Image:=TImage.Create(container);
  Image.Parent:=container;
  Image.Left:=x;
  Image.Top:=y;
  Image.Width:=width;
  Image.Height:=height;
  Image.Picture.LoadFromFile('sprites/'+filename);
end;
 
destructor TSpaceObject.Destroy;
begin
  Image.Free;
 
end;
 
procedure TSpaceObject.Process;
begin
  Image.Top:=Image.Top+10;
end;
 
procedure TForm1.AsteroindsTimerTimer(Sender: TObject);
var size:integer;
begin
  size:=30+random(60);
  Objects.Add(TAsteroid.create(random(form1.Width), 5+random(30), size, size,form1));
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
 Objects:=TSpaceObjects.create;
  spaceship:=TMySpaceShip.Create('fly.png', form1);
  Process.Enabled:=True;
  scores.Enabled:=true;
  AsteroindsTimer.Enabled:=True;
 
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  Objects.Free;
end;
 
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin
   if Key=VK_LEFT then
   spaceship.MoveLeft;
 
    if Key=VK_RIGHT then
    SpaceShip.MoveRight;
end;
 
procedure TForm1.ProcessTimer(Sender: TObject);
var o:TSpaceObject;
begin
    SpaceShip.process;
    for o in objects do
          o.Process;
end;
 
procedure TForm1.scoresTimer(Sender: TObject);
begin
label2.caption := IntToStr(StrToInt(label2.caption) + 1);
end;
 
{ TSpaceObjects }
 
destructor TSpaceObjects.Destroy;
var o:TSpaceObject;
begin
   for o in self do
   o.free;
   inherited  Free;
end;
 
{ TMySpaceShip }
 
constructor TMySpaceShip.Create(filename: string; container:TWincontrol);
begin
inherited Create(container.Width div 2 - 69, container.Height-165, 100, 136,filename,container);
  speedx:=0;
end;
 
procedure TMySpaceShip.MoveLeft;
begin
if Abs(speedx)<20 then
 
  speedx:=speedx -3;
end;
 
procedure TMySpaceShip.MoveRight;
begin
if Abs(speedx)<20 then
  speedx:=speedx+3;
end;
 
procedure TMySpaceShip.process;
begin
if (word(getkeystate(VK_LEFT)) and $8000)<>0 then  Moveleft;
 if (word(getkeystate(VK_right)) and $8000)<>0 then  Moveright;
 
 
 
 
     if (Image.left<10) and (speedx<0) then
     speedx:=0;
     if (Image.left>Image.parent.width-image.width-10) and (speedx>0) then
     speedx:=0;
 
    Image.left:=Image.Left+speedx;
    speedx:=trunc(speedx / 1.1);
end;
 
{ TAsteroid }
 
constructor TAsteroid.create(x,speed, width, height: Integer; container: Twincontrol);
begin
  inherited create(x, -height,width,height, 'asteroid.png', container);
  Image.Stretch:=True;
  speedy:=speed;
end;
 
procedure TAsteroid.Process;
begin
  if image.top>Image.parent.Height then
  begin
  objects.Remove(self);
    free;
    Exit;
  end;
Image.Top:=Image.Top+speedy;
end;
 
end.
не получается реализовать урон
игра выглядит так внизу формы есть кораблик она двигается влево и вправо сверху падают астероиды
нужно чтобы когда корабль пересекался с астероидами наносился урон
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.10.2013, 12:08
Ответы с готовыми решениями:

Нанесение урона
Есть скрипт Gun с методом shoot и скрипт EnemyController с методом hurt. Как сделать так, чтоб...

Текстовая стратегия в консоли. Нанесение урона персонажам
Доброе время суток! Ребята подскажите как можно написать бой между 2 персонажами... Т.е. Есть к...

Попадет ли пушка по движущемуся кораблю.
Пушка стреляет под углом А по кораблю, находящемуся от нее на расстоянии R. Нос корабля повернут по...

Какое минимальное время понадобится кораблю для того, чтобы достичь точки?
Заранее спасибо!

1
Заблокирован
26.10.2013, 12:16 2
Чево игры то такие садистские?

Добавлено через 2 минуты
И вообще что там у ваш за чушь? Конструкторы какие-то... Нафиг это вообще нужно?

Добавлено через 2 минуты
Скачайте мой проект, там только картинки поменять. Ну а столкновение я вам допишу
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2013, 12:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Перемещение с нанесением урона
у меня имеется мой персонаж, и персонаж который привязан к моему, и постоянно следует за ним с...

Не увеличивается значение урона с повышением уровня
Описал пулеметную башенку: ее уровень, урон в минуту. Также описал получение опыта при нанесении...

Вместо нанесения урона сразу убивает
Здравствуйте, у меня проблемка небольшая. У меня есть 2 скрипта: 1. Это Enemy(враг) 2. Это...

Возникает баг после получения урона C# Unity
Создаю 2D игру. Есть ГГ и противники. Противников можно убить прыгнув на их головы. Если получить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.