Código
- O código do Arduino
- Código Arduino
O código do Arduino C / C ++
#include #include #include #define PIN 6Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix (15, 10, NEOGRATRIX_EZOATRIX + NEZ_MHATRIX_BONO_MHATRIX + NEZ_MHATRIX + NEZAT_MATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEO_MHATRIX + NEZ_MHATRIX_BON_MHATRIX + NEO_MH800.; // variáveis para a posição da bola e paddleint paddleX =0; int paddleY =0; int oldPaddleX, oldPaddleY; int ballDirectionX =1; int ballDirectionY =1; int score =0; int ballSpeed =10; // números mais baixos são mais rápidosint ballX, ballY, oldBallX, oldBallY; void setup () {Serial.begin (9600); // inicializa a matriz de exibição.begin (); // fundo preto matrix.fillScreen (0); matrix.setTextColor (matrix.Color (0,255,0)); matrix.print ("GO"); matrix.show (); atraso (2000); matrix.fillScreen (0); matrix.show ();} void loop () {// salvar a largura e altura da tela int myWidth =matrix.width (); int minhaAltura =matriz.altura (); // mapeia a localização da raquete para a posição dos potenciômetros paddleX =map (analogRead (A0), 0, 1023, 0, 12); remo Y =8; // defina a cor de preenchimento para preto e apague a // posição anterior da pá se diferente do presente if (oldPaddleX! =paddleX || oldPaddleY! =paddleY) {matrix.fillRect (oldPaddleX, oldPaddleY, 4, 1, matrix. Cor (0,0,0)); } // desenhe a raquete na tela, salve a posição atual // como anterior.//if(paddleX> =0 &&paddleX <=11) {matrix.fillRect (paddleX, paddleY, 4, 1, matrix.Color ( 0,0,255)); //} // else if (paddleX <0) {// paddleX =0; //matrix.fillRect(paddleX, paddleY, 3, 1, matrix.Color (0,0,255)); //} // else if (paddleX> =13) {//} oldPaddleX =paddleX; oldPaddleY =paddleY; matrix.show (); // atualiza a posição da bola e desenha-a na tela if (millis ()% ballSpeed <2) {moveBall (); } matrix.show (); if (ballY> 8 &&(millis ()> 10000)) {score + =1; matrix.fillScreen (0); matrix.setTextColor (matrix.Color (255,0,0)); matrix.setCursor (0,2); matrix.print (String (pontuação)); matrix.show (); atraso (4000); ballX =aleatório (3,11); ballY =aleatório (1,1); matrix.fillScreen (0); matrix.show (); atraso (1000); } delay (5);} // esta função determina a posição da bola na tela para evitar moveBall () {// se a bola sair da tela, inverta a direção:if (ballX> matrix.width () - 1 || ballX <0) {ballDirectionX =-ballDirectionX; } if (ballY> matrix.height () || ballY <0) {ballDirectionY =-ballDirectionY; } // verifique se a bola e a raquete ocupam o mesmo espaço na tela if (inPaddle (ballX, ballY, paddleX, remoY, 4, 1)) {if (ballX ==paddleX &&ballY ==paddleY) {ballDirectionX =- ballDirectionX; ballDirectionY =-ballDirectionY; } else if (ballX ==paddleX + 3 &&ballY ==paddleY) {ballDirectionX =ballDirectionX; ballDirectionY =-ballDirectionY; } else if (ballX ==paddleX + 1 &&ballY ==paddleY) {ballDirectionX =-ballDirectionX; ballDirectionY =-ballDirectionY; } else if (ballX ==paddleX + 2 &&ballY ==paddleY) {ballDirectionX =ballDirectionX; ballDirectionY =-ballDirectionY; }} // atualiza a posição da bola ballX + =ballDirectionX; ballY + =ballDirectionY; // apaga a posição anterior da bola if (oldBallX! =ballX || oldBallY! =ballY) {matrix.drawPixel (oldBallX, oldBallY, matrix.Color (0,0,0)); } // desenha a posição atual da bola matrix.drawPixel (ballX, ballY, matrix.Color (150,150,0)); oldBallX =ballX; oldBallY =ballY;} // esta função verifica a posição da bola // para ver se ela cruza com o paddleboolean inPaddle (int x, int y, int rectX, int rectY, int rectWidth, int rectHeight) {boolean result =false; if ((x> =rectX &&x <=(rectX + rectWidth)) &&(y> =rectY &&y <=(rectY + rectHeight))) {resultado =verdadeiro; } resultado de retorno;}
Código Arduino C / C ++
#include #include #include #define PIN 6Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix (15, 10, NEOGRATRIX_EZOATRIX + NEZ_MHATRIX_BONO_MHATRIX + NEZ_MHATRIX + NEZAT_MATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEZ_MHATRIX + NEO_MHATRIX + NEZ_MHATRIX_BON_MHATRIX + NEO_MH800.; // variáveis para a posição da bola e paddleint paddleX =0; int paddleY =0; int oldPaddleX, oldPaddleY; int ballDirectionX =1; int ballDirectionY =1; int score =0; int ballSpeed =10; // números mais baixos são mais rápidosint ballX, ballY, oldBallX, oldBallY; void setup () {Serial.begin (9600); // inicializa a matriz de exibição.begin (); // fundo preto matrix.fillScreen (0); matrix.setTextColor (matrix.Color (0,255,0)); matrix.print ("GO"); matrix.show (); atraso (2000); matrix.fillScreen (0); matrix.show ();} void loop () {// salvar a largura e altura da tela int myWidth =matrix.width (); int minhaAltura =matriz.altura (); // mapeia a localização da raquete para a posição dos potenciômetros paddleX =map (analogRead (A0), 0, 1023, 0, 12); remo Y =8; // defina a cor de preenchimento para preto e apague a // posição anterior da pá se diferente do presente if (oldPaddleX! =paddleX || oldPaddleY! =paddleY) {matrix.fillRect (oldPaddleX, oldPaddleY, 4, 1, matrix. Cor (0,0,0)); } // desenhe a raquete na tela, salve a posição atual // como anterior.//if(paddleX> =0 &&paddleX <=11) {matrix.fillRect (paddleX, paddleY, 4, 1, matrix.Color ( 0,0,255)); //} // else if (paddleX <0) {// paddleX =0; //matrix.fillRect(paddleX, paddleY, 3, 1, matrix.Color (0,0,255)); //} // else if (paddleX> =13) {//} oldPaddleX =paddleX; oldPaddleY =paddleY; matrix.show (); // atualiza a posição da bola e desenha-a na tela if (millis ()% ballSpeed <2) {moveBall (); } matrix.show (); if (ballY> 8 &&(millis ()> 10000)) {score + =1; matrix.fillScreen (0); matrix.setTextColor (matrix.Color (255,0,0)); matrix.setCursor (0,2); matrix.print (String (pontuação)); matrix.show (); atraso (4000); ballX =aleatório (3,11); ballY =aleatório (1,1); matrix.fillScreen (0); matrix.show (); atraso (1000); } delay (5);} // esta função determina a posição da bola na tela para evitar moveBall () {// se a bola sair da tela, inverta a direção:if (ballX> matrix.width () - 1 || ballX <0) {ballDirectionX =-ballDirectionX; } if (ballY> matrix.height () || ballY <0) {ballDirectionY =-ballDirectionY; } // verifique se a bola e a raquete ocupam o mesmo espaço na tela if (inPaddle (ballX, ballY, paddleX, remoY, 4, 1)) {if (ballX ==paddleX &&ballY ==paddleY) {ballDirectionX =- ballDirectionX; ballDirectionY =-ballDirectionY; } else if (ballX ==paddleX + 3 &&ballY ==paddleY) {ballDirectionX =ballDirectionX; ballDirectionY =-ballDirectionY; } else if (ballX ==paddleX + 1 &&ballY ==paddleY) {ballDirectionX =-ballDirectionX; ballDirectionY =-ballDirectionY; } else if (ballX ==paddleX + 2 &&ballY ==paddleY) {ballDirectionX =ballDirectionX; ballDirectionY =-ballDirectionY; }} // atualiza a posição da bola ballX + =ballDirectionX; ballY + =ballDirectionY; // apaga a posição anterior da bola if (oldBallX! =ballX || oldBallY! =ballY) {matrix.drawPixel (oldBallX, oldBallY, matrix.Color (0,0,0)); } // desenha a posição atual da bola matrix.drawPixel (ballX, ballY, matrix.Color (150,150,0)); oldBallX =ballX; oldBallY =ballY;} // esta função verifica a posição da bola // para ver se ela cruza com o paddleboolean inPaddle (int x, int y, int rectX, int rectY, int rectWidth, int rectHeight) {boolean result =false; if ((x> =rectX &&x <=(rectX + rectWidth)) &&(y> =rectY &&y <=(rectY + rectHeight))) {resultado =verdadeiro; } resultado de retorno;}