KeyChainino - de eerste spel sleutelhanger programmeerbare met Arduino (8 / 14 stap)

Stap 8: Hoe werken de bal positie


De updateBallPosition() is ontslagen uit de owerflow interrupt van de timer 1 en wordt gebruikt voor het bijwerken van de positie van de bal.

Hier zijn we:

 //change ball position depending on the ball directionballY = ballCurrentPosition[0] + ballDirection[0];ballX = ballCurrentPosition[1] + ballDirection[1]; 

deze instructies werken de twee variabelen ballX en ballY volgens de ballDirection -variabele.

Zoals hierboven uiteengezet, kan de ballDirection deze waarden aannemen:

 Direction//Y: 0 = STOP, -1 = UP, 1 = down //X: 0 = STOP, 1 = RIGHT, -1 = LEFT int ballDirection[2] = {1, 0};//Y, X indicates the direction where the ball is going 

Dus, in eerste instantie voegen we de huidige positie van de bal aan de bal richting.

Dit maakt ze eenvoudiger manier om de bal richting omdat de matrix rij, bijvoorbeeld, van 0 tot en met 5 van boven naar beneden , gaat terwijl de matrix COL van 0 tot en met 6 van gaat van links naar rechts.


Dit betekent dat als de ballDirection is d'Ancona(A4-0104/95) naar {-1,0},

 ballY = ballCurrentPosition[0] + ballDirection[0];//ballCurrentPosition[0] + 1 = ball goes downballX = ballCurrentPosition[1] + ballDirection[1];//ballCurrentPosition[1] + 0 = ball takes is vertical position. 

We hebben nu bijgewerkt de variabelen BallX en BallY , maar niet de feitelijk positie van de bal in de matrix.

Dit omdat we willen dat eerst om te zien als de bal enkele botsing met de matrix grens of de bar.

 //checkCollision if (ballY >= MATRIX_ROW - 1) { // ball touched bottom ballY = MATRIX_ROW - 1; if (ballX >= MATRIX_COL - 1) { ballX = MATRIX_COL - 1; } if (ballX <= 0) { ballX = 0; } if (ballX == barCurrentPosition[0][1] || ballX == barCurrentPosition[1][1]) { //ball touched bar ballDirection[0] = -1; ballDirection[1] = random(-1, 2); score++; } else { //ball touched bottom = END //END GAME ballDirection[0] = 0; ballDirection[1] = 0; gameStarted = false; } 
 } else if (ballY <= 0) { //ball touch top ballY = 0; if (ballX >= MATRIX_COL - 1) { ballX = MATRIX_COL - 1; } if (ballX <= 0) { ballX = 0; } ballDirection[0] = 1; ballDirection[1] = random(-1, 2); } else if (ballX >= MATRIX_COL) { //ball touched right ballX = MATRIX_COL - 1; if (ballY >= MATRIX_ROW - 1) { ballY = MATRIX_ROW - 1; } if (ballY <= 0) { ballY = 0 ; } ballDirection[1] = -1; 
 } else if (ballX <= 0) { //ball touched left ballX = 0; if (ballY >= MATRIX_ROW - 1) { ballY = MATRIX_ROW - 1; } if (ballY <= 0) { ballY = 0; } ballDirection[1] = 1; } 

Deze functies komen overeen met de positie van de bal aan de grenzen van de matrix.

Als de ballen raakt de bovenste en linker- of rechterrand, stuiteren de ballen omdat wij zijn richting veranderen.

Nu bijwerken we de matrixState met de nieuwe positie van de bal op deze manier:

 //update position ballNewPosition[0] = ballY;ballNewPosition[1] = ballX;//delete current ball PositionmatrixState[ballCurrentPosition[0]][ballCurrentPosition[1]] = 0; //set current bar position to new positionballCurrentPosition[0] = ballNewPosition[0];ballCurrentPosition[1] = ballNewPosition[1];//show new bar PositionmatrixState[ballNewPosition[0]][ballNewPosition[1]] = 1; 

We schakelt de vorige positie van de bal eerst door te schakelen haar positie in de matrix matrixState.

Vervolgens stellen we de nieuwe bal positie in de matrixState.

Gerelateerde Artikelen

Het eerste gebruik van ESP8266 met Arduino Uno

Het eerste gebruik van ESP8266 met Arduino Uno

Vandaag, ga ik om u te tonen die hoe kunnen we onze module ESP8266 voor gebruik met Arduino UNO voorbereiden.De noodzaak lijst:1. Arduino UNO (met USB-kabel die op uw computer via USB-kabel aangesloten, ook wordt gebruikt de spanning)2. uw computer (
Kraan spel Revival! Met Arduino.

Kraan spel Revival! Met Arduino.

Hallo! Ik ben Noboyu.Ik ga vaak naar amusement arcade in Japan. Ik wil in het bijzonder de kraan game machine.Een dag... Ik kreeg een deel van de spel speelgoed kraan in een ongewenste winkel, het was gewoon weggooien als onverkochte vuilnis.En dat w
Bluetooth spel controller(Joystick) met Arduino en Jetpack

Bluetooth spel controller(Joystick) met Arduino en Jetpack

Hey, wil ik laten zien van een gemakkelijke manier om het bouwen van een fundamentele spelbesturing met joystick. De Jetpack zendt de gegevens uit de joystick serieel via Bluetooth. U kunt een spel spelen op uw PC met dit, je hoeft alleen te wijzigen
Aan de slag met Arduino - twee speler Arduino Pong

Aan de slag met Arduino - twee speler Arduino Pong

In deze tutorial gaan we een arduino gebaseerde controller die we gebruiken kunnen om te bepalen van een spel voor 2 spelers van pong bouwen.We gaan een paar van dial potentiometers (het draaien van knoppen) gebruiken om te controleren de pong vleerm
Leuk spel met arduino en processing

Leuk spel met arduino en processing

Dit leerprogramma zal u tonen hoe maak je een first person FPS-shooter in verwerking met behulp van een arduino. Dit project werd overhandigd aan ons als een eindexamen in een technische specialisatiecursus (bovenste middelbare school).Video van het
Hoe u een eenvoudig spel van de verwerking met Arduino

Hoe u een eenvoudig spel van de verwerking met Arduino

Hoi allemaalIn dit Instructable, zullen we zien hoe maak je een "link" tussen een Processing Schets en een Arduino-kaart. In dit voorbeeld worden een ultrasone module worden gebruikt voor het besturen van een vliegtuig in een eenvoudig spel. Nog
Speler 2 Pong met behulp van Arduino

Speler 2 Pong met behulp van Arduino

ben ik begonnen met de Instructable van Kyle Brinckerhoff;Bedankt Kyle!en het volgende achter maken tijdschrifthttp://blog.makezine.com/Archive/2007/08/Arduino-Pong.htmlen ik zie dat de oorspronkelijke code wordt toegeschreven aan Pete LamonicaThanks
Eerste stap naar uw smarthome met Arduino

Eerste stap naar uw smarthome met Arduino

de eerste stap in het creëren van een smarthome, is het simpelweg wissel voort en vandoor lichten.Om te beginnen van dit project zijn de volgende items nodig:• Relais module compatibel met Arduino (betekent werken bij 5V)• een Arduino, ik kies de Meg
Toetsenbord met Arduino zonder met behulp van toetsenbord bibliotheek (eerste Tutorial)

Toetsenbord met Arduino zonder met behulp van toetsenbord bibliotheek (eerste Tutorial)

Toetsenbord gebruikt meestal in de meeste projecten om de klant om te gaan met het project zoals (Real Time Clock (RTC) aan te passen van de dag, tijd, toegangscontrole,... enz) maar als je het gebruikt met de bibliotheek van het toetsenbord van Ardu
Programmeerbare 8 lussen pedaal switcher met Arduino Mega2560

Programmeerbare 8 lussen pedaal switcher met Arduino Mega2560

laatste update: februari 17 2016Dit is het tweede deel van mijn vorige tutorial over hoe het te doen eenvoudige programable pedalen switcher (of looper) nu met een Arduino MEGA2560 tot 8 Opbergbare lussen op 8 voorinstellingen.Merk op dat het mogelij
Het eerste gebruik van 0.96" I2C OLED-display met Arduino UNO

Het eerste gebruik van 0.96" I2C OLED-display met Arduino UNO

Vandaag, ga ik u tonen hoe te gebruiken 0.96" I2C OLED-display met Arduino UNO bord. Er zijn een heleboel verschillende type OLED displays. Ik heb 4-gespeld OLED display met mij. Deze worden weergegeven kunnen worden met SPI pinnen in plaats van I2C.
LED paraplu met Arduino

LED paraplu met Arduino

de LED paraplu met Arduino combineert een paraplu, een 8 x 10 LED matrix en een Arduino microcontroller maken een controleerbaar, programmeerbare LED ervaring in de privacy van uw eigen paraplu. Dit project werd geïnspireerd door de elektrische parap
Het gebruik van IR-afstandsbedieningen met Arduino (huidige en bijgewerkte)

Het gebruik van IR-afstandsbedieningen met Arduino (huidige en bijgewerkte)

Ik ben moe van deze ingewikkelde tutorials over het gebruik van bepaalde dingen. Ik hou van eenvoudige, gemakkelijk te begrijpen, stap voor stap instructies. Mijn grootste probleem was met IR en POV. Ik heb eindelijk onder de knie hoe u kunt besturen
Mind Reader met Arduino

Mind Reader met Arduino

Hallo iedereen!!Dit is mijn Mind Reader voor Arduino.De Mind Reader kan u vertellen welke letter van het alfabet (ABC), of met slechts enkele vragen die spelen kaart u hebben gedacht.Het is een eenvoudig project voor montage en met enkele draad verbi