PROCESSING
1. Installer Processing: www.processing.org
2. Dessiner un carré
void setup() { size(400, 400); // zone de dessin stroke(255); // couleur tracé (blanc) background(0); // fond (noir) } void draw() { rect(190, 190, 20, 20); }
3. Déplacer un carré
// on se place au milieu pour commencer int x = 190; int y = 190; void setup() { size(400, 400); stroke(255); } void draw() { background(0); if (key == CODED && keyPressed == true) { if (keyCode == UP) y-= 5; else if (keyCode == DOWN) y += 5; else if (keyCode == RIGHT) x += 5; else if (keyCode == LEFT) x -= 5; // Gestion des bords if (x < 0) x = 0; else if (x > 376) x = 376; if (y < 0) y = 0; else if (y > 376) y = 376; } rect(x, y, 20, 20); }
4. Déplacer un personnage
Placer le PNG (megaman.png dans le dossier data du script)
// on se place au milieu pour commencer int x = 188; int y = 188; PImage sprite; void setup() { size(400, 400); stroke(255); sprite = loadImage("megaman.png"); } void draw() { background(0); if (key == CODED && keyPressed == true) { if (keyCode == UP) y-= 5; else if (keyCode == DOWN) y += 5; else if (keyCode == RIGHT) x += 5; else if (keyCode == LEFT) x -= 5; // Gestion des bords if (x < 0) x = 0; else if (x > 376) x = 376; if (y < 0) y = 0; else if (y > 376) y = 376; } image(sprite, x, y); }
5. Ciel étoilé
void setup() { size(400, 400); background(0); for (int i = 0; i < 100; i++) { stroke(55 + random(100)); rect(random(400), random(400), 2, 2); } for (int i = 0; i < 100; i++) { stroke(155 + random(100)); rect(random(400), random(400), 1, 1); } } void draw() {}
6. Obstacle
Placer le PNG (megaman.png dans le dossier data du script)
// on se place au milieu pour commencer int x = 188; int oldX = 188; int y = 188; int oldY = 188; PImage sprite; void setup() { size(400, 400); sprite = loadImage("megaman.png"); stroke(255); fill(255); } void draw() { background(0); if (key == CODED && keyPressed == true) { if (keyCode == UP) y-= 5; else if (keyCode == DOWN) y += 5; else if (keyCode == RIGHT) x += 5; else if (keyCode == LEFT) x -= 5; // Gestion des bords if (x < 0) x = 0; else if (x > 376) x = 376; if (y < 0) y = 0; else if (y > 376) y = 376; // Gestion obstacle if (x > 300-24 && x < 300+20 && y > 300-24 && y < 300+20) { x = oldX; y = oldY; } } oldX = x; oldY = y; image(sprite, x, y); rect(300, 300, 20, 20); }
7. Obstacles randomisés
Placer le PNG (megaman.png dans le dossier data du script)
// on se place au milieu pour commencer int x = 0; int oldX = 0; int y = 0; int oldY = 0; PImage sprite; int NbObs = 40; int[] ObsX = new int[NbObs]; int[] ObsY = new int[NbObs]; void setup() { size(400, 400); sprite = loadImage("megaman.png"); stroke(255); fill(255); for (int i = 0; i < NbObs; i++) { ObsX[i] = 24 + int(random(400)); ObsY[i] = 24 + int(random(400)); } } void draw() { background(0); if (key == CODED && keyPressed == true) { if (keyCode == UP) y-= 5; else if (keyCode == DOWN) y += 5; else if (keyCode == RIGHT) x += 5; else if (keyCode == LEFT) x -= 5; // Gestion des bords if (x < 0) x = 0; else if (x > 376) x = 376; if (y < 0) y = 0; else if (y > 376) y = 376; // Gestion obstacles for (int i = 0; i < NbObs; i++) { if (x > ObsX[i]-24 && x < ObsX[i]+20 && y > ObsY[i]-24 && y < ObsY[i]+20) { x = oldX; y = oldY; } } } oldX = x; oldY = y; image(sprite, x, y); for (int i = 0; i < NbObs; i++) rect(ObsX[i], ObsY[i], 20, 20); }
8. Obstacles-TheHulk randomisés
Placer les PNG (megaman.png & thehulk.png dans le dossier data du script)
// on se place au milieu pour commencer int x = 0; int oldX = 0; int y = 0; int oldY = 0; PImage megaman; PImage thehulk; int NbObs = 40; int[] ObsX = new int[NbObs]; int[] ObsY = new int[NbObs]; void setup() { size(400, 400); megaman = loadImage("megaman.png"); thehulk = loadImage("thehulk.png"); stroke(255); fill(255); for (int i = 0; i < NbObs; i++) { ObsX[i] = 24 + int(random(400)); ObsY[i] = 24 + int(random(400)); } } void draw() { background(0); if (key == CODED && keyPressed == true) { if (keyCode == UP) y-= 2; else if (keyCode == DOWN) y += 2; else if (keyCode == RIGHT) x += 2; else if (keyCode == LEFT) x -= 2; // Gestion des bords if (x < 0) x = 0; else if (x > 376) x = 376; if (y < 0) y = 0; else if (y > 376) y = 376; // Gestion obstacle for (int i = 0; i < NbObs; i++) { if (x > ObsX[i]-24 && x < ObsX[i]+30 && y > ObsY[i]-24 && y < ObsY[i]+30) { x = oldX; y = oldY; } } } oldX = x; oldY = y; image(megaman, x, y); for (int i = 0; i < NbObs; i++) { image(thehulk, ObsX[i], ObsY[i]); ObsX[i] += random(-1, 2); ObsY[i] += random(-1, 2); } }
9. MegaMan vs. The TheHulk
Placer les PNG (megaman.png & thehulk.png dans le dossier data du script)
// on se place au milieu pour commencer int x = 0; int oldX = 0; int y = 0; int oldY = 0; PImage megaman; PImage thehulk; int NbObs = 40; int[] ObsX = new int[NbObs]; int[] ObsY = new int[NbObs]; void setup() { size(400, 400); megaman = loadImage("megaman.png"); thehulk = loadImage("thehulk.png"); stroke(255); fill(255); for (int i = 0; i < NbObs; i++) { ObsX[i] = 24 + int(random(400)); ObsY[i] = 24 + int(random(400)); } } void draw() { background(0); if (key == CODED && keyPressed == true) { if (keyCode == UP) y-= 2; else if (keyCode == DOWN) y += 2; else if (keyCode == RIGHT) x += 2; else if (keyCode == LEFT) x -= 2; // Gestion des bords if (x < 0) x = 0; else if (x > 376) x = 376; if (y < 0) y = 0; else if (y > 376) y = 376; // Gestion obstacle for (int i = 0; i < NbObs; i++) { if (x > ObsX[i]-24 && x < ObsX[i]+30 && y > ObsY[i]-24 && y < ObsY[i]+30) { x = oldX; y = oldY; } } } oldX = x; oldY = y; image(megaman, x, y); for (int i = 0; i < NbObs; i++) { image(thehulk, ObsX[i], ObsY[i]); ObsX[i] += random(-1, 2); ObsY[i] += random(-1, 2); } } void keyPressed() {println(key); if (key == ENTER || key == RETURN) { for (int i = 0; i < 100; i = i + 5) { frameRate(2); circle(x+12, y+12, i); } for (int i = 0; i < NbObs; i++) { if (dist(x, y, ObsX[i], ObsY[i]) < 100) ObsX[i] = ObsY[i] = -100; } frameRate(30); } }
10. PONG
float bX = 100; float bY = 100; float depX = 6; float depY = 4; float raqY = 0; float raqDepY = 0; float qarY = 0; float qarDepY = 0; void setup() { size(1024, 640); noStroke(); fill(255); } void draw() { background(0); bX = bX + depX; bY = bY + depY; if (10 < bX && bX < 20 && raqY < bY && bY < raqY+50) depX =-depX; if (width-20 < bX && bX < width-10 && qarY < bY && bY < qarY+50) depX =-depX; if (bY > height-10 || bY < 0) depY = -depY; raqY = raqY + raqDepY; qarY = qarY + qarDepY; if (raqY < 0) raqY = 0; if (raqY > height-50) raqY = height-50; if (qarY < 0) qarY = 0; if (qarY > height-50) qarY = height-50; if (bX > width-10 || bX < 0) { bX = 100+random(300); bY = 100+random(300); depX = 6; depY = 4; } rect(bX, bY, 10, 10); rect(10, raqY, 10, 50); rect(width-20, qarY, 10, 50); } void keyPressed() { if (key == 'a') raqDepY = -5; if (key == 'q') raqDepY = 5; if (key == 'p') qarDepY = -5; if (key == 'm') qarDepY = 5; } void keyReleased() { if (key == 'a') raqDepY = 0; if (key == 'q') raqDepY = 0; if (key == 'p') qarDepY = 0; if (key == 'm') qarDepY = 0; }
11. ANALYSE AUDIO
import processing.sound.*; AudioIn input; Amplitude analyzer; FFT fft; int bands = 512; float[] spectrum = new float[bands]; int bassLimit = 20; int mediumLimit = 120; int multiplicator = 1000; void setup() { size(1080, 720); background(0); strokeWeight(4); input = new AudioIn(this, 0); input.start(); analyzer = new Amplitude(this); analyzer.input(input); fft = new FFT(this, bands); fft.input(input); } void draw() { fill(0, 20); strokeWeight(20); float bass = 0; float medium = 0; float treble = 0; float vol = analyzer.analyze(); fft.analyze(spectrum); for(int i = 0; i < bands; i++){ if (i < bassLimit) bass += spectrum[i]; else if (i < mediumLimit) medium += spectrum[i]; else treble += spectrum[i]; } stroke( map(treble*multiplicator, 0, 255, 0, 150), map(medium*multiplicator, 0, 255, 0, 150), map(bass*multiplicator, 0, 255, 0, 150)); circle(width/2, height/2, int(vol*multiplicator)); } void mousePressed() { saveFrame("output/frame_####.png"); }