-
дали задание написать игру, чтобы самолет летал и сбрасывал бомбы на танки. Никак не могу сделать, чтобы при попадании в танк был взрыв и начислялось 10 очков. Танк, самолет, бомба, взрыв - все через Image делал.
if Image7.top>630 then begin
k:=StrToInt(label4.Caption);
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;
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;
label4.Caption:=IntToStr(k);
image7.Top:=80;
end;
end;
end;
end;
Здесь Image7 - бомба, Image9 и Image10 - танк, k - очки.
Просьба помочь с решением этой задачи. Заранее спасибо.
-
> чтобы самолет летал и сбрасывал бомбы
как-то знакомо :)
-
ну я тут вроде не видел такого еще :)
если кто найдет, то скиньте, может смотрел невнимательно)
-
> anikos (14.04.13 19:20) [2]
> ну я тут вроде не видел такого еще :)
это и ценно, скоро мем "грабить корованы" устареет :)
-
еще есть один вопрос..изображения постоянно моргают, а если включить двойную буферизацию, то моргать перестают, но при этом жутко все тормозит.
Может кто знает, как исправить?
И конечно же заранее спасибо огромное :)
-
Блин, это проста праздник какой-то :)
Поясни плз вот эту строчку:
> image7.Top:=80; //Возврат бомбы к самолету
-
> Блин, это проста праздник какой-то :)
> Поясни плз вот эту строчку:
>
>
> > image7.Top:=80; //Возврат бомбы к самолету
ну чтобы при следующем нажатии она летела с высоты, на которой самолет)
я вроде сделал, но оно иногда срабатывает, иногда нет, непонятно короче)
-
когда он едет вправо, то все работает, а если едет влево, то не хочет)
-
> [5] Rouse_ © (14.04.13 19:55)
> Возврат бомбы к самолету
На танках противоавиационные батуты.
-
> anikos (14.04.13 18:47)
Всё надо переделовать.
> > чтобы самолет летал и сбрасывал бомбыкак-то знакомо :
> )
Это еще под досом была игрушка только там был вертолёт.
-
Вирт когда придумывал Pascal сделал его функциональным.
Разбейте свою задачу на подзадачи и оформите в виде функций и процедур.
Функцию проверки попадания лучше оформить так. Сделай функцию проверки пересечения квадрата и круга или функцию пересечения прямоугольника и прямоугольника.
Когда будешь делать проверку будешь вызывать эту функцию и передавать в неё координаты и размеры танка и бомбы.
-
> k:=k+10; //Íначисление очков
Имена переменных должны отражать суть. Иначе ведь ничего не понятно и приходиться писать комментарии. Гораздо легче читать само документированный код.
Тут нужно дать название переменной Points или Many.
Точно также и другим переменным танк, самолёт, бомба.
-
я сделал уже :)
спасибо всем за идеи)
там в цикле с end-ами запутался..невнимательность :)
-
> Имена переменных должны отражать суть. Иначе ведь ничего
> не понятно и приходиться писать комментарии. Гораздо легче
> читать само документированный код.
> Тут нужно дать название переменной Points или Many.
> Точно также и другим переменным танк, самолёт, бомба.
это я уже понял
просто начал так делать уже, а сейчас долго переделывать
-
а что такое Image9 и 10? Или направо ездит танк женского полу?
-
> картман © (14.04.13 20:35) [14]
> а что такое Image9 и 10? Или направо ездит танк женского
> полу?
ну если едет танк влево, то одно изображение, а если вправо, то другое
а то получится что влево будет ехать нормально, а вправо будет задом ехать :)
-
> еще есть один вопрос..изображения постоянно моргают, а если
> включить двойную буферизацию, то моргать перестают, но при
> этом жутко все тормозит.
GDI сразу уже был тормознутым, надо directx использовать
-
По поводу моргания и тормозов. Прежде временная оптимизация вредит проекту. Так что предлагаю оставить как есть. На win7 GDI тормозит, надо на OpenGL или DirectX переходить, а у тебя с основами программирования туго. А ещё лучше было бы взять готовый движок.
Если хочешь что бы GDI не тормозил. Во первых оставь один Image. А ещё лучше один PaintBox. И выводить на соотвествующий компонент Bitmap.
А вот уже на Bitmap ты собираешь из фрагментов(спрайтов) свой кадр.
Во вторых в примерах к Delphi прилагается простейшая игра с жуками.
-
а как танк разворачивается?
-
> а как танк разворачивается?
Мгновенно. =)
Не ну можно на зрителя дуло наставить. Причем с увеличенным размером.
-
> Pavia © (14.04.13 20:44) [19]
это я автору адресовал - хотел подвести к одному объекту для отображения
-
> [19] Pavia © (14.04.13 20:44)
> Причем с увеличенным размером.
Как в самоваре.
-
> Как в самоваре.
Не как в мультфильме "Десантник Стёпочкин"
https://www.youtube.com/watch?v=JAhmrRLiWJY
-
> картман © (14.04.13 20:45) [20]
>
> > Pavia © (14.04.13 20:44) [19]
>
> это я автору адресовал - хотел подвести к одному объекту
> для отображения
давай подробнее к чему хотел подвести :)
не профи в delphi, так что не понял тебя)
-
> anikos (14.04.13 21:08) [23]
да ни причем тут дельфи - один физический объект одним программным и должен быть реализован, иначе путаница будет. Если разные картинки - все равно объект-танк один. Для разных изображений - контейнер, нужное изображение подсовывается когда надо.
-
бомбовая нагрузка самолета ограничена, я требую учесть это. кроме того, я не увидел в коде возможность тарана.
и еще. координаты танка должны быть полигональны, ибо дуло выступает.
-
> да ни причем тут дельфи - один физический объект одним программным
> и должен быть реализован, иначе путаница будет. Если разные
> картинки - все равно объект-танк один. Для разных изображений
> - контейнер, нужное изображение подсовывается когда надо.
>
я не создавал же объект, просто картинок накидал
создать 1 объект было бы правильнее, но я в этом еще не очень разбираюсь, так что решил не рисковать)
-
> я не создавал же объект, просто картинок накидал
ну, надо ж начинать, к тому же, монитор не взорвется, если что напутаешь))
-
> ну, надо ж начинать, к тому же, монитор не взорвется, если
> что напутаешь))
сначала так сделаю, а будет время, то через объект сделаю :)
-
> Dimka Maslov © (14.04.13 20:41) [16]
>
>
> GDI сразу уже был тормознутым,
сразу может и был, но сейчас совсем нет.
-
Спасибо, поржал. Сто лет тут не был, а трэшак все тот же=D
-
> то скиньте
Бомбочку
-
> Rouse_ © (14.04.13 19:55) [5]
ты что??
это же тру-оптимизация !
не 200 же ему Timage на форму копипастить !
-
> не 200 же ему Timage на форму копипастить !
Это расплата за "не умею"