Adrian-George GĂVAN (87693) - Brick Breaker Game CS Open CourseWare

Контакти

Вступ

adrian-george
Проект полягає у створенні гри типу "Цегельний вимикач". Це була одна з моїх улюблених ігор у дитинстві, тому я думав, що було б цікаво реалізувати версію цієї гри. Проект матиме акселерометр для управління та РК-дисплей для перегляду ходу гри.

Brick Breaker - це аркадна гра, як правило, одиночна. Спочатку гра називалася Breakout і була розроблена в 1976 році. Основна зміна відбулася в 2007 році, коли гра вийшла як "Brick Breaker". Це була перша гра, створена для телефону BlackBerry.

Загальний опис

Мета гри полягає в тому, щоб гравець знищив усі цеглини на відповідному рівні. Для цього гравець використовуватиме м’яч, який буде кинутий з дошки. Куля може рухатися в різних напрямках, і цегла буде руйнуватися при контакті кульки з нею.

Вага гри полягає в тому, що гравець не повинен випускати м'яч з екрану. Він може вийти лише через ту сторону, на якій знаходиться дошка гравця. Гравець повинен керувати дошкою (пересувати її вліво і вправо), щоб не пустити м'яч повз дошку і не перенаправити її на різні цеглини. Залежно від рівня, у гравця буде обмежена кількість життів. Коли м’яч вийде з гри, одне життя буде втрачено. Гравець програє гру, якщо втрачає життя.

Гра матиме кілька рівнів: міцніша цегла, м’яч рухатиметься швидше або буде менше життів. Крім того, на різних рівнях ви зіткнетеся з різними силами (наприклад, більша дошка або додаткове життя).

Блок-схема:

Опис блок-схеми

Дизайн обладнання

РК-дисплей і зуммер встановлені на одній тестовій дошці.
5 кнопок і акселерометр встановлені на одній дошці, звідси дошкою можна керувати, якщо ви призупините або вийдете з гри, ви зможете вибрати різні варіанти тощо.
Зуммер підключений до порту D, РК-дисплей - до порту B, акселерометр - до порту C, а кнопки - до порту A.
GND, витягнутий з порту A, витягується з штифта під назвою VCC, оскільки на материнській платі ім'я VCC і GND штифтів для порту A було змінено.

Розробка програмного забезпечення

Гра починається з відображення повідомлення "Ласкаво просимо". Натисніть будь-яку кнопку, щоб рухатися далі.
У грі є 3 меню для опцій:

Перше меню призначене для вибору рівня складності. Гра має 3 рівні:

За допомогою кнопок "Вгору" та "Вниз" переміщайтеся по рівнях. Поточний параметр буде мати позначку "← Вибране". Натисніть "Enter", щоб вибрати рівень.
Друге меню призначене для вибору режиму управління. Гравець може вибрати для використання кнопок «Вліво» та «Вправо» на дошці управління для переміщення дошки в грі, або він може використовувати акселерометр, нахиляючи дошку управління вліво або вправо. Як і вище, виберіть бажаний варіант, а потім перейдіть до наступного меню.

З останнього меню гравець може вибрати один із 3 варіантів кольору дошки та кулі.
Після вибору опцій гра почнеться, і предмети відповідного рівня будуть відображені на екрані.
Гравець завжди починатиме з 3 життів, і життя можна побачити на верхній стіні рівня.
Гра буде виграна, якщо гравець зруйнує всі цеглини. Залежно від рівня, цегла має 1,2 або 3 життя (і різні кольори залежно від поточної кількості життів).

Гравець програє, якщо втратить своє життя (падіння м'яча біля дошки або через різні бонуси).
Цегла може мати 1,2 або 3 життя ⇒ буде кольорована жовтим (1 життя), синім (2 життя) і темно-червоним (3 життя). Коли цегла вдариться, вона або буде стерта, або її життя зменшиться, і її колір зміниться.

Пластина може рухатися зліва направо (до стін), а м’яч має 3 напрямки: вертикальний, косий ліворуч і косий праворуч. М'яч буде приймати напрямок залежно від того, де він потрапляє на дошку і залежно від того, як він відбиватиметься від стін або цегли.

У грі також є опція паузи: ви можете натиснути "Вниз/P", щоб зробити паузу або скасувати паузу.
У грі також є опція втечі, тому, коли ви натискаєте кнопку "Вгору/Esc" під час гри, гра закінчується, і ми повернемося до першого меню.
Щоб зробити все цікавіше, в гру додано бонуси. Всього існує 6 видів бонусів:

Бонуси довільно прикріплені до цегли. Коли цегла буде знищена і отримає бонус, вона почне падати внизу екрана.
Якщо вона падає поруч із тарілкою, то вона зникає. Якщо він потрапив на тарілку, тоді його ефект буде виконаний.

Кожен рівень матиме 2 бонуси від кожного з перших 5 видів бонусів у списку. Середній і жорсткий рівні також матимуть бонус "Миттєва смерть".
Цей бонус забирає все життя гравця ⇒ гравець миттєво програє. Якщо рівень важкий, то буде ще 2 бонуси за те, щоб позбавити життя, щоб ускладнити ситуацію.

Коли життя втрачено, падаючі бонуси будуть автоматично знищені, а ефект від "більшої дошки", "меншої дошки" або "нон-стоп кулі" бонусів буде скасовано.
Коли гравець виграє або програє, відповідне повідомлення відображатиметься протягом 7 секунд, а потім ми повернемося до меню вибору рівня.

Отримані результати

Результати були такими, якими я хотів: мені вдалося створити функціональну гру і досягти всього, що я задумав.
Це весела гра з різними варіантами, рівнями та бонусами. Мені також вдалося змусити апаратне забезпечення працювати, чого я найбільше боявся.
Гравець може вибрати, використовувати кнопки для переміщення дошки або акселерометра. Якщо ви хочете скористатися акселерометром, тримайте пластину паралельно підлозі та нахиляйте її вліво або вправо.