Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.11.03;
Скачать: CL | DM;

Вниз

Взрыв при попадании   Найти похожие ветки 

 
anikos   (2013-04-14 18:47) [0]

дали задание написать игру, чтобы самолет летал и сбрасывал бомбы на танки. Никак не могу сделать, чтобы при попадании в танк был взрыв и начислялось 10 очков. Танк, самолет, бомба, взрыв - все через Image делал.

if Image7.top>630 then  begin           //если бомба около земли
k:=StrToInt(label4.Caption);            //k - очки
 if Image9.Tag=1 then begin            //если танк едет влево
   if (image7.left<image9.Left+32) and (Image7.left>Image9.Left-16) then  begin
   playsound(PChar("D:..\sounds\bombw.wav"), 10, snd_Async);   //звук взрыва
     k:=k+10;  //&#205;начисление очков
     label4.Caption:=IntToStr(k);
     Image7.Top:=80;          //возврат бомбы к самолету
   end;
 if Image9.tag=2 then begin          //если танк едет вправо
   if (image7.left<(Image10.left)+32) and (image7.left>(Image10.left)-16) then begin
   playsound(PChar("D:..\sounds\bombw.wav"), 10, snd_Async);  //звук взрыва
     k:=k+10;  //&#205;Начисление очков
     label4.Caption:=IntToStr(k);
     image7.Top:=80;   //Возврат бомбы к самолету
   end;
end;
end;
end;


Здесь Image7 - бомба,    Image9 и Image10 - танк, k - очки.
Просьба помочь с решением этой задачи. Заранее спасибо.


 
Rouse_ ©   (2013-04-14 19:05) [1]


> чтобы самолет летал и сбрасывал бомбы

как-то знакомо  :)


 
anikos   (2013-04-14 19:20) [2]

ну я тут вроде не видел такого еще :)
если кто найдет, то скиньте, может смотрел невнимательно)


 
Rouse_ ©   (2013-04-14 19:31) [3]


> anikos   (14.04.13 19:20) [2]
> ну я тут вроде не видел такого еще :)

это и ценно, скоро мем "грабить корованы" устареет :)


 
anikos   (2013-04-14 19:36) [4]

еще есть один вопрос..изображения постоянно моргают, а если включить двойную буферизацию, то моргать перестают, но при этом жутко все тормозит.
Может кто знает, как исправить?
И конечно же заранее спасибо огромное :)


 
Rouse_ ©   (2013-04-14 19:55) [5]

Блин, это проста праздник какой-то :)
Поясни плз вот эту строчку:


> image7.Top:=80;   //Возврат бомбы к самолету


 
anikos   (2013-04-14 20:05) [6]


> Блин, это проста праздник какой-то :)
> Поясни плз вот эту строчку:
>
>
> > image7.Top:=80;   //Возврат бомбы к самолету


ну чтобы при следующем нажатии она летела с высоты, на которой самолет)
я вроде сделал, но оно иногда срабатывает, иногда нет, непонятно короче)


 
anikos   (2013-04-14 20:14) [7]

когда он едет вправо, то все работает, а если едет влево, то не хочет)


 
Inovet ©   (2013-04-14 20:15) [8]

> [5] Rouse_ ©   (14.04.13 19:55)
> Возврат бомбы к самолету

На танках противоавиационные батуты.


 
Pavia ©   (2013-04-14 20:25) [9]


> anikos   (14.04.13 18:47) 

Всё надо переделовать.


> > чтобы самолет летал и сбрасывал бомбыкак-то знакомо  :
> )

Это еще под досом была игрушка только там был вертолёт.


 
Pavia ©   (2013-04-14 20:29) [10]

Вирт когда придумывал Pascal сделал его функциональным.
Разбейте свою задачу на подзадачи и оформите в виде функций и процедур.

Функцию проверки попадания лучше оформить так. Сделай функцию проверки пересечения квадрата и круга или функцию пересечения прямоугольника и прямоугольника.
Когда будешь делать проверку будешь вызывать эту функцию и передавать в неё координаты и размеры танка и бомбы.


 
Pavia ©   (2013-04-14 20:32) [11]


>    k:=k+10;  //&#205;начисление очков

Имена переменных должны отражать суть. Иначе ведь ничего не понятно и приходиться писать комментарии. Гораздо легче читать само документированный код.
Тут нужно дать название переменной Points или Many.
Точно также и другим переменным танк, самолёт, бомба.


 
anikos   (2013-04-14 20:33) [12]

я сделал уже :)
спасибо всем за идеи)
там в цикле с end-ами запутался..невнимательность :)


 
anikos   (2013-04-14 20:35) [13]


> Имена переменных должны отражать суть. Иначе ведь ничего
> не понятно и приходиться писать комментарии. Гораздо легче
> читать само документированный код.
> Тут нужно дать название переменной Points или Many.
> Точно также и другим переменным танк, самолёт, бомба.


это я уже понял
просто начал так делать уже, а сейчас долго переделывать


 
картман ©   (2013-04-14 20:35) [14]

а что такое Image9 и 10? Или направо ездит танк женского полу?


 
anikos   (2013-04-14 20:37) [15]


> картман ©   (14.04.13 20:35) [14]
> а что такое Image9 и 10? Или направо ездит танк женского
> полу?


ну если едет танк влево, то одно изображение, а если вправо, то другое
а то получится что влево будет ехать нормально, а вправо будет задом ехать :)


 
Dimka Maslov ©   (2013-04-14 20:41) [16]


> еще есть один вопрос..изображения постоянно моргают, а если
> включить двойную буферизацию, то моргать перестают, но при
> этом жутко все тормозит.


GDI сразу уже был тормознутым, надо directx использовать


 
Pavia ©   (2013-04-14 20:41) [17]

По поводу моргания и тормозов. Прежде временная оптимизация вредит проекту. Так что предлагаю оставить как есть. На win7 GDI тормозит, надо на OpenGL  или DirectX переходить, а у тебя с основами программирования туго. А ещё лучше было бы взять готовый движок.

Если хочешь что бы GDI не тормозил. Во первых оставь один Image. А ещё лучше один PaintBox. И выводить на соотвествующий компонент Bitmap.
А вот уже на Bitmap ты собираешь из фрагментов(спрайтов) свой кадр.

Во вторых в примерах к Delphi прилагается простейшая игра с жуками.


 
картман ©   (2013-04-14 20:42) [18]

а как танк разворачивается?


 
Pavia ©   (2013-04-14 20:44) [19]


> а как танк разворачивается?

Мгновенно. =)
Не ну можно на зрителя дуло наставить. Причем с увеличенным размером.


 
картман ©   (2013-04-14 20:45) [20]


> Pavia ©   (14.04.13 20:44) [19]

это я автору адресовал - хотел подвести к одному объекту для отображения


 
Inovet ©   (2013-04-14 20:46) [21]

> [19] Pavia ©   (14.04.13 20:44)
> Причем с увеличенным размером.

Как в самоваре.


 
Pavia ©   (2013-04-14 20:49) [22]


> Как в самоваре.

Не как в мультфильме "Десантник Стёпочкин"
https://www.youtube.com/watch?v=JAhmrRLiWJY


 
anikos   (2013-04-14 21:08) [23]


> картман ©   (14.04.13 20:45) [20]
>
> > Pavia ©   (14.04.13 20:44) [19]
>
> это я автору адресовал - хотел подвести к одному объекту
> для отображения


давай подробнее к чему хотел подвести :)
не профи в delphi, так что не понял тебя)


 
картман ©   (2013-04-14 21:12) [24]


> anikos   (14.04.13 21:08) [23]

да ни причем тут дельфи - один физический объект одним программным и должен быть реализован, иначе путаница будет. Если разные картинки - все равно объект-танк один. Для разных изображений - контейнер, нужное изображение подсовывается когда надо.


 
Kilkennycat ©   (2013-04-14 21:14) [25]

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


 
anikos   (2013-04-14 21:19) [26]


> да ни причем тут дельфи - один физический объект одним программным
> и должен быть реализован, иначе путаница будет. Если разные
> картинки - все равно объект-танк один. Для разных изображений
> - контейнер, нужное изображение подсовывается когда надо.
>


я не создавал же объект, просто картинок накидал
создать 1 объект было бы правильнее, но я в этом еще не очень разбираюсь, так что решил не рисковать)


 
картман ©   (2013-04-14 21:21) [27]


> я не создавал же объект, просто картинок накидал

ну, надо ж начинать, к тому же, монитор не взорвется, если что напутаешь))


 
anikos   (2013-04-14 21:27) [28]


> ну, надо ж начинать, к тому же, монитор не взорвется, если
> что напутаешь))

сначала так сделаю, а будет время, то через объект сделаю :)


 
DVM ©   (2013-04-14 21:44) [29]


> Dimka Maslov ©   (14.04.13 20:41) [16]
>
>
> GDI сразу уже был тормознутым,

сразу может и был, но сейчас совсем нет.


 
Den   (2013-05-20 01:55) [30]

Удалено модератором


 
Anatoly Podgoretsky ©   (2013-05-20 12:33) [31]


> то скиньте

Бомбочку


 
robt2   (2013-05-20 16:13) [32]


> Rouse_ ©   (14.04.13 19:55) [5]

ты что??
это же тру-оптимизация !
не 200 же ему Timage на форму копипастить !


 
Anatoly Podgoretsky ©   (2013-05-20 16:24) [33]

> не 200 же ему Timage на форму копипастить !

Это расплата за "не умею"



Страницы: 1 вся ветка

Текущий архив: 2013.11.03;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.007 c
15-1368995402
Юрий
2013-05-20 00:30
2013.11.03
С днем рождения ! 20 мая 2013 понедельник


2-1360298852
Andrey K
2013-02-08 08:47
2013.11.03
Вкладка Diagram


3-1293438440
avers_sm
2010-12-27 11:27
2013.11.03
Как передать TIBTransaction в качестве параметра процедуры.


15-1368647469
Rouse_
2013-05-15 23:51
2013.11.03
ВУЗ для IT специалиста: взгляд изнутри


15-1369142209
p
2013-05-21 17:16
2013.11.03
Помогите перевести