OrionXL

Игра арканоид. Алгоритм игры

Роман Иванов @ 17:00 05.03.2010

Как написать игру арканоид? Немного истории игры арканоид...

Идея этой игры уходит в далекие 90-е прошлого века. Еще на 486 ibm можно было в нее весело поиграть. В упрощенной интерпретации игра состоит из шарика, маленькой площадки и тех стен (сверху и с двух боков). Шарик соответственно летает по пространству и отскакивает от стен и площадки. Задача игрока не дать шарику покинуть игровое поле. Однако, согласитесь такая цель игры очень примитивна. Поэтому для интереса добавили уровни и так называемые "кирпичики", которые необходимо сбивать. Соответственно, при столкновении шарика с этими блоками, они уничтожались и исчезали с экрана. Таким образом игра арканоид уже начинает захватывать потенциального игрока. Теперь у Вас появилась цель - перейти в следующий уровень уничтожив все блоки. А если добавить различные бонусы и спецэффекты, то игра станет впечатляющей и захватывающей. Хотя основной целью этой игры арканоид, как и всех остальных является задача провести время, расслабиться - порелаксировать :-)

Алгоритм игры арканоид

Сформулируем основные моменты.
Игровая обстановка и элементы
Шарик, который летает по пространству и отскакивает от всех предметов.
Площадка, которая перемещается игроком в горизонтальном пространстве экрана, обычно внизу игрового поля.
Стены, сверху и с низу. Задача ограничить перемещения шарика влево, право и вверх.
Блоки или кирпичики, приносят игроку бонусы, которые игрок должен разбить, попав шариком.
Функции игрока
Перемещение площадки по полю, не позволяя шарику покинуть его приделы и направляя его на блоки для их уничтожения.

Псевдо реализации игры арканоид

И так, нам необходимо реализовать игровые соответствующие объекты, проще всего в форме классов. Необходимо создать один класс, общий
который будет содержать все элементы.

class CElement
{
 private:
 protected:
 public:

 float height,width,left,top; // геометрические параметры - высота, ширина, позиция верхнего и левого угла
 int type; //тип элемента

 CElement(){};
 ~CElement(){};
}

Функция отражения шарика
Из школьной физики можно вспомнить правило: "Угол падения равен углу отражения". Мы здесь считаем, что все игровые элементы имеют абсолютную жесткость. Т.к. если учитывать эти моменты, то поведение шарика станет совсем не предсказуемым :-) А так к тому же проще.
Для определения вектора отскока. Мы берем и поворачиваем входной вектор угол (alpha) на угол 180-alpha. Таким образом мы получим выходной.

Дальнейшее описание игры арканоид позже...

Комментариев нет

Комментариев нет.

RSS-лента комментариев к этой записи.

Извините, обсуждение на данный момент закрыто.

алгоритмы, методы, программы - OrionXL