DiNGS – программирование игр в домашних условиях. Часть 5.1
АрхивПрограммазм (архив)Движение лифта, траектории.
Как реализовать движение лифта.
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) запретить движение влево (разрешить движение вправо).
Мы описали действия для двух сторон экрана.
Продолжение читайте завтра…