Pour cet atelier nous nous attaquons au réseau. On repart d'un « Pong » mais en vertical \o/. import processing.net.*; Client c; int lBar, hBar, ballSize; int x1, y1, x2, y2, x3, y3; void setup() { size(400, 600); ballSize = 15; lBar = 100; hBar = 20; c = new Client(this, "127.0.0.1", 4321); } void draw() { background(0); sendPosition(); receivePosition(); drawBar(); drawBall(); x2 = mouseX; } void drawBar() { rect(min(max(x1 - (lBar/2), 0), (width - lBar)), height - (hBar + 10), lBar, hBar); rect(min(max(x2 - (lBar/2), 0), (width - lBar)), 10, lBar, hBar); } void drawBall() { ellipse(x3, y3, ballSize, ballSize); } void sendPosition() { c.write(x2+"\n"); } void receivePosition() { if (c.available() > 0) { String input = c.readString(); input = input.substring(0, input.indexOf("\n")); int[] data = int(splitTokens(input, ",")); x1 = data[0]; x3 = data[1]; y3 = data[2]; } } import processing.net.*; Server s; Client c; int lBar, hBar, ballSize; int x1, y1, x2, y2, x3, y3; int h, v; void setup() { size(400, 600); ballSize = 15; lBar = 100; hBar = 20; x3 = width/2; y3 = height/2; s = new Server(this, 4321); h = 3; v = 2; } void draw() { background(0); h = (x3 > width - ballSize/2) || (x3 < ballSize/2)?-h:h; if (v > 0) { v = (y3 > height-(hBar+10+ballSize/2)) && (x3 > x1-lBar/2) && (x3< x1+lBar/2)?-v:v; } else if (v < 0) { v = ((y3 < (ballSize/2+hBar+10))&&(x3 < x2+lBar/2)&&(x3 > x2-lBar/2) )?-v:v; } y3 = (y3 > height - ballSize/2) || (y3 < ballSize/2)?(height/2):y3; x3 += h; y3 += v; sendPosition(); receivePosition(); drawBar(); drawBall(); x1 = mouseX; } void drawBar() { rect(min(max(x1 - (lBar/2), 0), (width - lBar)), height - (hBar + 10), lBar, hBar); rect(min(max(x2 - (lBar/2), 0), (width - lBar)), 10, lBar, hBar); } void drawBall() { ellipse(x3, y3, ballSize, ballSize); } void sendPosition() { s.write(x1+","+x3+","+y3+"\n"); } void receivePosition() { c = s.available(); if (c != null) { String input = c.readString(); input = input.substring(0, input.indexOf("\n")); int data = Integer.parseInt(input); x2 = data; } }