Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помигите с игрой (выстрел)
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - Multimedia, Графика, Игры
lOSK
пишу на delphi игру не что вроде танчика. столкнулся с проблемой.
при нажатии на кнопку "вперед" я присваиваю переменной a значение "1" для того чтобы при выстреле снаряд летел вверх, при нажатии на клавишу "лево" значение "2" и т.д.
в таймере, который отвечает за полет снаряда, я пишу следующий код:
if (a=1) then
begin
image3.Top:=image3.Top-7;
end;

if (a=4) then
begin
image3.Left:=image3.Left+7;
end;

if (a=2) then
begin
image3.Left:=image3.Left-7;
end;

if (a=3) then
begin
image3.Top:=image3.Top+7;
end;

так вот при выстреле все нормально. если танк повернут вверх, снаряд летит вверх, если вниз-вниз и т.д. но если танк вдруг повернется в другую сторону, в то время когда снаряд уже летит, он (снаряд) полетит в ту сторону, в какую повернулся снаряд.
все правильно, условие-то выполняется. но подскажите, плиз, как от этого можно избавиться sad.gif
ShadowCoder
Грамотно, при "выстреле" создавать новый объект - снаряд, которому присваивать значение картинки и направление движения, чтобы он уже не зависел от танка. Снаряд выпущен - связь с танчиком потеряна, всё!
lOSK
нет... так не пойдет, код громоздкий и неудобный. да и есть в моем коде причины, по которым этого нельзя сделать.
может, еще у кого-нибудь есть предложения?
Silver Wind
Переменную заведи отдельную для направления снаряда - при выстреле копируй в нее направление танка и в таймере по ней ориентируйся.

А вообще можно ничего не исправлять, а сделать такое поведение снаряда "фишкой" отличающей твою игру от других, все равно думаю, твоя игра не будет блистать ничем другим, ни графикой, ни оригинальностью, а тематика игры избитая.
lOSK
Цитата(Silver Wind @ 22:07:2008 - 08:30) *
сделать такое поведение снаряда "фишкой"

да ну. какая же это фишка. так вообще неинтересно
Цитата(Silver Wind @ 22:07:2008 - 08:30) *
воя игра не будет блистать ничем другим, ни графикой, ни оригинальностью, а тематика игры избитая.

вы тут все такие доброжелательные?
Silver Wind
Цитата(lOSK @ 22:07:2008 - 09:57) *
да ну. какая же это фишка. так вообще неинтересно


ну как знаешь, мое дело - предложить

Цитата(lOSK @ 22:07:2008 - 09:57) *
вы тут все такие доброжелательные?


доброжелательность здесь не причем, просто по коду видно, что анимация основана на сдвигании TImage компонент, а это годится разве что для учебной программы (и то учебной не в области программирования графики) и ничего действительно толкового при таком подходе в итоге не выйдет
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.