XHotSniperX
Lt. Junior Grade
- Registriert
- Jan. 2008
- Beiträge
- 472
Hallo
Die Aufgabe ist relativ einfach eigentlich. Siehe Anhänge.
Ich habe mehr oder weniger richtig (a), (b), (c), (d) gemacht und möchte jetzt bei (e) nur mal testen, ob überhaupt etwas gezeichnet wird, wenn ich die Schildkröte bewege.
Code:
Wenn ich das ausführ, kommt leider nur das Fenster und der Stift malt leider nichts. wieso?? Eigentlich sollte die Turtle "akan" um 30 Pixel ja nach rechts bewegt werden und dabei auch malen, weil der Stift eine Zeile davor runtergesetzt wird. Wieso klappt das aber nicht?
Ich hoffe ihr könnt mir helfen. Vielen Dank im Vorraus!
Die Aufgabe ist relativ einfach eigentlich. Siehe Anhänge.
Ich habe mehr oder weniger richtig (a), (b), (c), (d) gemacht und möchte jetzt bei (e) nur mal testen, ob überhaupt etwas gezeichnet wird, wenn ich die Schildkröte bewege.
Code:
Code:
package Praxis;
import Praxis.ImageWindow;
import Praxis.Turtle;
public class BasicTurtle {
public static void main(String args[]) {
ImageWindow w = new ImageWindow(500,500);
Turtle akan = new Turtle(w);
akan.stift(0);
akan.bewegen(30, 0, 0, 0);
akan.w.openWindow();
akan.w.redraw();
}
}
Code:
package Praxis;
public class Turtle {
ImageWindow w;
int x;
int y;
int richtung; // xRichtung:0, yRichtung:1, -xRichtung:2, -yRichtung:3
int stift; // stift_oben:0, stift_unten:1
public Turtle(ImageWindow f){
x = 249;
y = 249;
richtung = 0;
stift = 0;
w = f;
}
void stift(int a){
if(a==0)
stift = 1;
if(a==1)
stift = 0;
}
void drehung(int b){
if(b>0 && b%90==0)
b += b/90;
if(b<0 && b%90==0)
b += b/90;
}
void bewegen(int s, int r, int g, int b){
if (s==0)
s = 1;
if (stift == 0){
if (richtung == 0)
x += s;
else if (richtung == 1)
y += s;
else if (richtung == 2)
x -= s;
else if (richtung == 3)
y -= s;
}
if (stift == 1){
if (richtung == 0){
for(int i = 0; i<s; i++)
w.setPixel(x, y, r, g, b);
x += s;
}
else if (richtung == 1){
for(int i = 0; i<s; i++)
w.setPixel(x, y, r, g, b);
y += s;
}
else if (richtung == 2){
for(int i = 0; i<s; i++)
w.setPixel(x, y, r, g, b);
x -= s;
}
else if (richtung == 3){
for(int i = 0; i<s; i++)
w.setPixel(x, y, r, g, b);
y -= s;
}
}
}
}
Wenn ich das ausführ, kommt leider nur das Fenster und der Stift malt leider nichts. wieso?? Eigentlich sollte die Turtle "akan" um 30 Pixel ja nach rechts bewegt werden und dabei auch malen, weil der Stift eine Zeile davor runtergesetzt wird. Wieso klappt das aber nicht?
Ich hoffe ihr könnt mir helfen. Vielen Dank im Vorraus!
Anhänge
Zuletzt bearbeitet: