DiNGS – программирование игр в домашних условиях. Часть 2.
АрхивПрограммазм (архив)Движение объектов. Циклы. Логика в игре.
Движение объектов
У каждого игрового объекта есть координаты на экране. Отобразим на экране шар. У него есть координаты Х и У. Воздействуя на них, мы можем изменять положение шарика. Пусть вывод спрайта производится посредством процедуры SPRITE, которая имеет некоторые параметры. Одни из них – и есть координаты объекта. Но если задать их просто числами, то ничего уже изменить не удастся. Поэтому прибегнем к помощи переменных. Пусть вывод осуществляется так: SPRITE 0, X,Y,0. Обо всех параметрах мы поговорим позднее. Изменяя значение Х или Y мы заставим объект двигаться: x=x+1.
Что такое циклы?
Но на самом деле, чтобы все это двигалось (враги перемещались, Марио прыгал по платформочкам, ниндзя сражался с боссом) необходимо организовать цикл – то есть последовательное повторение одних и тех же операторов. Есть много способов для достижения оного. Самый простой вариант – использовать метки:
metka: Вывод спрайта в координаты X и Y. Изменение координаты Х. GOTO metka:
Программа начинается на слове метка, выполняет вывод спрайта изменяет координату Х и опять перемещается на метку metka и снова все повторяется. В результате спрайт шара движется. Минус такого подхода очевиден – цикл бесконечен – из него не предусмотрен выход. Есть более гибкие операторы – один из них while <условие выхода> действия предусмотренные пользователем wend.
Логика в игре
Весь игровой процесс основан на логическом операторе if – что означает «если». Полностью конструкция имеет вид: if (если) то-то (условие) then (тогда) делать то-то (действие) else (иначе) то-то. Часто применяют короткую его версию
If .. then..
Без логики трудно представить игру. Например, когда бита столкнется с шаром мы хотим услышать звук. В DiNGS это будет выглядеть примерно так:
If collision=1 then Playsound 0,0
Если произошло столкновение тогда проиграть звук. Подробнее читайте завтра.