trk666
YaBB Newbies
Offline
Posts: 11
Austria
Re: capture video and puzzle
Reply #3 - Apr 4th , 2009, 7:16am
import processing.video.*; Capture bild; // Verschiebepuzzle // Konstanten (Variablen, deren Werte waehrend der Programmlaufzeit nicht veraendert werden, // zur Kennzeichnung tragen diese Namen aus Grossbuchstaben): int KL = 120; // Kantenlaenge eines Puzzlequadrats in Pixel int ANZ = 5; // Anzahl der Puzzlequadrate hoch und quer int BL = ANZ * KL; // Kantenlaenge des gesamten Bilds in Pixel int LEERX = 0; // x-Position des leeren Felds bei sortiertem Puzzle int LEERY = 0; // y-Position des leeren Felds bei sortiertem Puzzle int SLB = max(250, BL/3+20); // Breite der Seitenleiste in Pixeln int MISCHWERT = 1000; // Wie stark wird das Puzzle zu Anfang gemischt? // globale Variablen (stehen allen Funktionen zur Verfuegung): PImage [][] bilder; // zweidimensionales Array der Puzzlequadrate int lx = LEERX; // Zeiger auf die aktuelle x-Koordinate des leeren Felds int ly = LEERY; // Zeiger auf die aktuelle y-Koordinate des leeren Felds PFont ubahn; // die verwendete Schriftart void setup(){ size(600, 600); // Schrift laden, Schriftdatei muss im Unterverzeichnis 'data' vorliegen ubahn = loadFont("Ubahn-18.vlw"); // ins Fenster muessen die Puzzlequadrate passen, // dazu je ein Pixel Abstand dazwischen und die Seitenleiste size(BL + ANZ + SLB, BL + ANZ); // das Bild kann auch durch ein anderes ersetzt werden, das im Unterverzeichnis 'data' liegt, // allerdings muss dieses quadratisch sein mit einer Kantenlaenge von KL*BL, // diese Konstanten sind ggf. anzupassen bild = new Capture(this, width, height, 30); bilder = new PImage [ANZ][ANZ]; // x und y sind Zaehler fuer die Koordinaten der Puzzlequadrate for (int x = 0; x < ANZ; x++){ for (int y = 0; y < ANZ; y++){ bilder[x][y] = bild.get(x*KL, y*KL, KL, KL); } } // ein Quadrat muss anschliessend geraeumt werden bilder[LEERX][LEERY] = null;