1. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Первый товар уже в продаже: Консультация на тему ИБ от Ondrik8

    Скрыть объявление
  2. Спонсор публикаций Marketplace codeby. Сервис, который так долго ждали. При расчетах используем биткоин. Второй товар маркетплейса: Надёжная обфускация вашей программы от PingVinich

    Скрыть объявление

Помигите с игрой (выстрел)

Тема в разделе "Разработка игр и приложений к ним", создана пользователем lOSK, 22 июл 2008.

  1. lOSK

    lOSK Гость

    Репутация:
    0
    пишу на delphi игру не что вроде танчика. столкнулся с проблемой.
    при нажатии на кнопку "вперед" я присваиваю переменной a значение "1" для того чтобы при выстреле снаряд летел вверх, при нажатии на клавишу "лево" значение "2" и т.д.
    в таймере, который отвечает за полет снаряда, я пишу следующий код:
    Код (Text):
    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;
    так вот при выстреле все нормально. если танк повернут вверх, снаряд летит вверх, если вниз-вниз и т.д. но если танк вдруг повернется в другую сторону, в то время когда снаряд уже летит, он (снаряд) полетит в ту сторону, в какую повернулся снаряд.
    все правильно, условие-то выполняется. но подскажите, плиз, как от этого можно избавиться :(
     
  2. ShadowCoder

    ShadowCoder Гость

    Репутация:
    0
    Грамотно, при "выстреле" создавать новый объект - снаряд, которому присваивать значение картинки и направление движения, чтобы он уже не зависел от танка. Снаряд выпущен - связь с танчиком потеряна, всё!
     
  3. lOSK

    lOSK Гость

    Репутация:
    0
    нет... так не пойдет, код громоздкий и неудобный. да и есть в моем коде причины, по которым этого нельзя сделать.
    может, еще у кого-нибудь есть предложения?
     
  4. Silver Wind

    Silver Wind Гость

    Репутация:
    0
    Переменную заведи отдельную для направления снаряда - при выстреле копируй в нее направление танка и в таймере по ней ориентируйся.

    А вообще можно ничего не исправлять, а сделать такое поведение снаряда "фишкой" отличающей твою игру от других, все равно думаю, твоя игра не будет блистать ничем другим, ни графикой, ни оригинальностью, а тематика игры избитая.
     
  5. lOSK

    lOSK Гость

    Репутация:
    0
    да ну. какая же это фишка. так вообще неинтересно
    вы тут все такие доброжелательные?
     
  6. Silver Wind

    Silver Wind Гость

    Репутация:
    0
    ну как знаешь, мое дело - предложить

    доброжелательность здесь не причем, просто по коду видно, что анимация основана на сдвигании TImage компонент, а это годится разве что для учебной программы (и то учебной не в области программирования графики) и ничего действительно толкового при таком подходе в итоге не выйдет
     

Поделиться этой страницей