#include "GameBoy.h" //підключити
GameBoy gb;
bool block[8][8]={ /**/
{0,1,0,1,0,1,0,1}, /**/
{1,0,1,0,1,0,1,0}, /**/
{0,1,0,1,0,1,0,1}, /**/
{1,0,1,0,1,0,1,0}, /**/
{0,1,0,1,0,1,0,1}, /**/
{1,0,1,0,1,0,1,0}, /**/
{0,1,0,1,0,1,0,1}, /**/
{1,0,1,0,1,0,1,0} /**/
}; /**/
int xP = 2, lenP = 3; // paddle - ракетка /**/
int xB=0, yB=8, xM=1, yM=1; //Ball-м'яч Move-рух /**/
void setup() {
gb.begin(0);
}
void loop() {
xB+=xM; yB+=yM; /**///змінюємо кординату м'яча в сторону руху /**/
if(xB<0) {xB=0; xM*=-1;}/**/
if(xB>7) {xB=7; xM*=-1;}/**/
if(yB<0) {yB=0; yM*=-1;}/**/
if(yB>15){yB=15; yM*=-1;}/**/
gb.memSet(xB, yB, 1); /**/
for(int x=0; x<8; x++)for(int y=0; y<8; y++) /**/
if(block[x][y]){ /**/
if(x==xB and y==yB){ /**/
block[x][y] = 0; /**/
yM*=-1; //відбимаємо м'ячи ` /**/
} /**/
gb.memSet(x, y, block[x][y]); /**/
}
// керування ракеткою
if (gb.getKey() == 4 and xP > 0) xP--;
if (gb.getKey() == 5 and lenP+xP < 8) xP++;
// відображення ракетки
for(int x=0; x<lenP; x++) gb.memSet(xP+x, 14, 1);
if((yB==13 or yB==14) and xB>=xP and xB<xP+lenP)yM*=-1;
if(yB>=15){gb.testMatrix(1); asm volatile("jmp 0");}
gb.drawDisplay(); //вивід на екран пікселів з пам'яті
delay(50); //затримка між кадрами
gb.memClear(); //очистка пікселів пам'яті
}