Étape 3: Code de traitement
Import processing.serial.* ;
Port série = nouvelle série (ce, Serial.list() [0], 9600) ; Valeur de chaîne ; gameover boolean = false, droite = false, left = faux, d = false, un = false, last = false, jouant = false ; int Topscores = 0, bottomscore = 0, bouton = 0 ; float changespeed = 0 ; Bas de la palette ; Balle pongball ; Haut de la palette ; void setup() {frameRate(100) ; noStroke() ; pongball = new Ball() ; en bas = new Paddle() ; top = new Paddle() ; top.y=0;size(1024,500) ; value=port.readStringUntil('\n');} void draw() {String [] importations ; background(0) ; if (port.available() > 0) {value=port.readStringUntil('\n');} si (valeur! = null) {importations = split (valeur, "") ; int i = 0 ; tandis que (i 0) {bottomscore = 0; Topscores = 0; port.write(7) ; gameover = false ; jeu = false;}} Si (bouton > 0) {gameover = false ; jeu = false;}} } top.show() ; Bottom.Show() ; Si (! gameover) {pongball.move();} else {si (! jouant) {sendthing();} si (dernier) {pongball.x = top.x+60 ; pongball.y = top.y+13 ; pongball.up = false ; pongball.right = false;} else {pongball.x = bottom.x+60 ; pongball.y = bottom.y-13 ; pongball.up = true ; pongball.right = true;}} pongball.bounce() ; pongball.Show() ; Si (pongball.y < -8) {gameover = true ; bottomscore ++; dernière = true;} si (pongball.y > 508) {last = false ; gameover = true ; Topscores ++;}}
void sendthing() {si (Topscores == 1 & &! dernier) {port.write(1);} si (Topscores == 2 & &! dernier) {port.write(2);} si (Topscores == 3 & &! dernier) {port.write(3);} si (bottomscore == 1 & & dernière) {port.write(4);} si (bottomscore == 2 & & dernière) {port.write(5);} si (bottomscore == 3 & & dernière) {port.write(6);}
jouer = true ; }
Ballon de classe {int x, y; boolean vers le haut, droit ; Ball() {x = 16; y = 484 ; maximum = true ; droite = true;} void move() {si (vers le haut == true) {y=int(y-2-changespeed/2);} else //up==false {y=int(y+2+changespeed/2);} si (droite == true) {x=int(x+5+changespeed);} else //right==false {x=int(x-5-changespeed);}} void bounce() {si (obtenir (int (x)-8, int(y))!=color(0)) {droite = true ; if (y > 9 & & y < 491) {port.write(8);}} si (get (int (x) + 8 int(y))!=color(0)) {droite = false ; if (y > 9 & & y < 491) {port.write(8);}} si (get(int(x), int (y) -8) == color (255, 0, 0)) {jusqu'à = false end if (y > 9 & & y < 491) {port.write(8);}} si (get(int(x), int (y) + 8) == color (255, 0, 0)) {jusqu'à = true ; if (y > 9 & & y < 491) {port.write(8);}}} void show() {fill (247, 226, 48); ellipse (x, y, 16, 16);}}
Pagaie de classe {int x, y ; Paddle() {x = 250; y = 496;} void show() {fill (255, 0, 0); rect (x, y, 120, 4);}}