Архивы: по дате | по разделам | по авторам

DiNGS – программирование игр в домашних условиях. Часть 5.1

АрхивПрограммазм (архив)
автор : Александр Супрунов   12.02.2003

Движение лифта, траектории.

Как реализовать движение лифта.

1. Увеличивать координату Y пока она не достигнет нужного нам значения.
2. Уменьшать координату Y пока она не достигнет нужного нам значения.

Смысл верен, но работать ничего не будет. Поэтому данная ошибка будет нами подробно рассмотрена.

Пусть лифт (бита) будет двигаться по Y от 10 до 200. Пишем:

If Y<=200 then Y=Y+1
If Y>=200 then y=y-1

На самом деле бита достигнув значения 200 одновременно начнет и прибавлять и вычитать единицу. То есть перестанет двигаться. Для реализации правильного алгоритма нам потребуется переключатель (переменная) – триггер.

Создадим переменную UP – она у нас будет получать значение 1 или 0. Если значение UP будет равно 1 - движение вверх разрешено – если 0 – движение вниз разрешено.

ПОДПРОГРАММА ДВИЖЕНИЯ ЛИФТА

If UP=0 then Y=Y+1
If UP=1 then Y=Y-1

If Y<=10 then UP=0
If Y>=200 then UP=1

Вот так правильно. Только не забудьте инициализировать в самом начале программы значение UP. Например, еще до начала цикла While вписать строчку UP=0 иначе лифт не двинется.

Рассмотрим более подробно приведенную выше программу.

If UP=0 then Y=Y+1
     //если движение вниз разрешено увеличить Y
If UP=1 then Y=Y-1
     //если движение вверх разрешено уменьшить Y
 
If Y<=10 then UP=0
    //  Если Y меньше или равно 10 тогда
// движение вверх запретить (движение вниз разрешить)

If Y>=200 then UP=1
   // Если Y больше или равно 10 тогда
// движение вниз запретить (движение вверх разрешить)

Применение данного алгоритма не ограничивается только движением лифта – это и имеющие переменную яркость фонари в игре и меняющие степень прозрачности объекты – пусть те же облака, реагирующие на порывы ветра – которые тоже могут быть реализованы триггерами. Но для чего все это объяснять когда мы пишем какой-то там примитивный Ping Pong?

Как в простейшем случае реализовать алгоритм полета мяча?
Задать ему движение по диагонали с отскоком от краев экрана.
Такой подход применен во множестве известных игр. Те же триггеры! Давайте же сделаем это и мы.

1. Зададим движение мяча по диагонали – одновременно увеличивая координаты X и Y.
2. Если мяч достигнет верхнего края экрана (координата Y=0) запретить движение вверх (разрешить движение вниз).
3. Если мяч достигнет левого края экрана (координата Х=0) запретить движение влево (разрешить движение вправо).

Мы описали действия для двух сторон экрана.

Продолжение читайте завтра…

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.