Как написать игру арканоид? Немного истории игры арканоид...
Идея этой игры уходит в далекие 90-е прошлого века. Еще на 486 ibm можно было в нее весело поиграть. В упрощенной интерпретации игра состоит из шарика, маленькой площадки и тех стен (сверху и с двух боков). Шарик соответственно летает по пространству и отскакивает от стен и площадки. Задача игрока не дать шарику покинуть игровое поле. Однако, согласитесь такая цель игры очень примитивна. Поэтому для интереса добавили уровни и так называемые "кирпичики", которые необходимо сбивать. Соответственно, при столкновении шарика с этими блоками, они уничтожались и исчезали с экрана. Таким образом игра арканоид уже начинает захватывать потенциального игрока. Теперь у Вас появилась цель - перейти в следующий уровень уничтожив все блоки. А если добавить различные бонусы и спецэффекты, то игра станет впечатляющей и захватывающей. Хотя основной целью этой игры арканоид, как и всех остальных является задача провести время, расслабиться - порелаксировать
Алгоритм игры арканоид
Сформулируем основные моменты.
Игровая обстановка и элементы
Шарик, который летает по пространству и отскакивает от всех предметов.
Площадка, которая перемещается игроком в горизонтальном пространстве экрана, обычно внизу игрового поля.
Стены, сверху и с низу. Задача ограничить перемещения шарика влево, право и вверх.
Блоки или кирпичики, приносят игроку бонусы, которые игрок должен разбить, попав шариком.
Функции игрока
Перемещение площадки по полю, не позволяя шарику покинуть его приделы и направляя его на блоки для их уничтожения.
Псевдо реализации игры арканоид
И так, нам необходимо реализовать игровые соответствующие объекты, проще всего в форме классов. Необходимо создать один класс, общий
который будет содержать все элементы.
class CElement { private: protected: public: float height,width,left,top; // геометрические параметры - высота, ширина, позиция верхнего и левого угла int type; //тип элемента CElement(){}; ~CElement(){}; }
Функция отражения шарика
Из школьной физики можно вспомнить правило: "Угол падения равен углу отражения". Мы здесь считаем, что все игровые элементы имеют абсолютную жесткость. Т.к. если учитывать эти моменты, то поведение шарика станет совсем не предсказуемым
А так к тому же проще.
Для определения вектора отскока. Мы берем и поворачиваем входной вектор угол (alpha) на угол 180-alpha. Таким образом мы получим выходной.