Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.11.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.003 c
11-1248443105
DevilDevil
2009-07-24 17:45
2013.11.03
Горизонтальный ScrollBar


2-1360068267
vlad
2013-02-05 16:44
2013.11.03
Bass.dll


3-1293005098
Андрей Пл
2010-12-22 11:04
2013.11.03
Сравнение таблиц по срок.полям (лишние внутренние пробелы)


15-1368909003
Юрий
2013-05-19 00:30
2013.11.03
С днем рождения ! 19 мая 2013 воскресенье


1-1316688285
denkop
2011-09-22 14:44
2013.11.03
TImage над TStringGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский