class Oblicht extends Light // FixLight erweitert die Klasse Light { int altPosX; // altPosX werde ich unten als Speicher brauchen int altPosY; // altPosY werde ich unten als Speicher brauchen int z; // z brauche für die Zuweisung der Zufallszahl int ea; // ea verwende ich unten als Abkürzung int eb; // eb verwende ich unten als Abkürzung Oblicht(int xP, int yP, int xD, int yD, int xA, int yA) { xPos = xP; // Startposition X yPos = yP; // Startposition Y xDim = xD; // Seitenlänge des BigLights >> Breite yDim = yD; // Seitenlänge des BigLights >> Höhe altPosX = xA; // Startwert: ansonsten gibts ein Loch >> hat in der ersten Runde keinen Wert altPosY = yA; // Startwert: ansonsten gibts ein Loch >> hat in der ersten Runde keinen Wert } void move() { paintMe(); for(int i=0; i> Verschiebe! else // Es werden jeweils die beiden Eckpunkte des BigLights überprüft { yPos = yPos; // Sollte die Position nicht "leer" sein, so tue nichts } } void moveUnten() // Definiert die zweite der 4 Bewegungsrichtungen { // void moveUnten vergrössert die y-Position d.h. Die Leuchte bewegt sich nach unten.. if(rasterPosition[ea][eb+BIG_LIGHT_SIDELENGHT/10+1] == N_FREE && rasterPosition[ea+BIG_LIGHT_SIDELENGHT/10][eb+BIG_LIGHT_SIDELENGHT/10+1] == N_FREE) { yPos = yPos + 10; // Wenn das Feld zu welchem es soll "leer" ist, Dann: } // ..vergrössere yPos um 10 >> Verschiebe! else { yPos = yPos; // Sollte die Position nicht "leer" sein, so tue nichts } } void moveRechts() // Definiert die dritte der 4 Bewegungsrichtungen { // void moveRechts vergrössert die x-Position d.h. Die Leuchte bewegt sich nach rechts.. if(rasterPosition[ea+BIG_LIGHT_SIDELENGHT/10+1][eb] == N_FREE && rasterPosition[ea+BIG_LIGHT_SIDELENGHT/10+1][eb+BIG_LIGHT_SIDELENGHT/10] == N_FREE) { xPos = xPos + 10; // Wenn das Feld zu welchem es soll "leer" ist, Dann: } // ..vergrössere xPos um 10 >> Verschiebe! else { xPos = xPos; // Sollte die Position nicht "leer" sein, so tue nichts } } void moveLinks() // Definiert die dritte der 4 Bewegungsrichtungen { // void moveRechts vergrössert die x-Position d.h. Die Leuchte bewegt sich nach links.. if(rasterPosition[ea-1][eb] == N_FREE && rasterPosition[ea-1][eb+BIG_LIGHT_SIDELENGHT/10] == N_FREE) { xPos = xPos - 10; // Wenn das Feld zu welchem es soll "leer" ist, Dann: } // ..verkleinere xPos um 10 >> Verschiebe! else { xPos = xPos; // Sollte die Position nicht "leer" sein, so tue nichts } } void paintMe() { // Zeichnet das wesentliche des Oblichts: Das Viereck fill(0); stroke(100); strokeWeight(1); rect(xPos, yPos, BIG_LIGHT_SIDELENGHT, BIG_LIGHT_SIDELENGHT); // Zeichnet das unwesentliche des Oblichts: Die Strichzeichnung rect(xPos + 2, yPos + 2, BIG_LIGHT_SIDELENGHT - 4, BIG_LIGHT_SIDELENGHT - 4); rect(xPos + BIG_LIGHT_SIDELENGHT/8, yPos + BIG_LIGHT_SIDELENGHT/8, (BIG_LIGHT_SIDELENGHT/8)*3, (BIG_LIGHT_SIDELENGHT/8)*5); line(xPos, yPos, xPos + BIG_LIGHT_SIDELENGHT/8, yPos + BIG_LIGHT_SIDELENGHT/8); line(xPos + BIG_LIGHT_SIDELENGHT, yPos, xPos + BIG_LIGHT_SIDELENGHT/8 + (BIG_LIGHT_SIDELENGHT/8)*3, yPos + BIG_LIGHT_SIDELENGHT/8); line(xPos, yPos + BIG_LIGHT_SIDELENGHT, xPos + BIG_LIGHT_SIDELENGHT/8, yPos + BIG_LIGHT_SIDELENGHT/8 + (BIG_LIGHT_SIDELENGHT/8)*5); line(xPos + BIG_LIGHT_SIDELENGHT, yPos + BIG_LIGHT_SIDELENGHT, xPos + BIG_LIGHT_SIDELENGHT/8 + (BIG_LIGHT_SIDELENGHT/8)*3, yPos + BIG_LIGHT_SIDELENGHT/8 + (BIG_LIGHT_SIDELENGHT/8)*5); } }