Guten Abend zusammen,
mir fehlt gerade ein wenig die Logik wie ich eine Linie zeichne und per Tastendruck dazu auffordere eine RUNDE Kurve zu werden. Meine Gedanken bisher waren, dass ich einen Kreis nehme und ihn auf dem Panel erstmal nur nach rechts bewege (ohne das Panel zu löschen) und sobald man eine Taste drückt (idealer Weise 'links' / 'rechts' oder 'a' / 'd') sich die Linie nach oben bzw. nach unten bewegt. Allerdings kann ich ja nur mit int´s arbeiten, weshalb das alles dann ziemlich eckig aussieht (vgl. das angehängte Bild).
Ich habe mir 8 bools gemacht:
Mit diesen lege ich eben fest, in welche Richtung sich die Linie "bewegen" soll - so:
Ich nehme erstmal am Anfang an, dass rechts true ist. Sobald ich dann einmal nach links drücke muss die Linie sich nach links-oben bewegen (also
)
Wenn ich dann wieder nach rechts gehe muss eben wieder right true werden und wenn ich weiter nach rechts gehe eben rightToBottom.
Ich habe mir überlegt einen Integer "count" zu initialisieren und ihn für rechts zu subtrahieren und für links zu addieren, wobei dann geprüft wird, ob er vor dem addieren/subtrahieren bereits bei 0/7 ist und ihn wenn es so ist jeweils auf 7 bzw. 0 zu setzen.
Jedoch ist dies doch ein ziemlich hässliche Lösung oder nicht? Würde mich sehr über Verbesserungsvorschläge freuen - habe nämlich wie ihr bestimmt merkt noch nie wirklich in JAVA gezeichnet.
Danke für Eure Hilfe
mir fehlt gerade ein wenig die Logik wie ich eine Linie zeichne und per Tastendruck dazu auffordere eine RUNDE Kurve zu werden. Meine Gedanken bisher waren, dass ich einen Kreis nehme und ihn auf dem Panel erstmal nur nach rechts bewege (ohne das Panel zu löschen) und sobald man eine Taste drückt (idealer Weise 'links' / 'rechts' oder 'a' / 'd') sich die Linie nach oben bzw. nach unten bewegt. Allerdings kann ich ja nur mit int´s arbeiten, weshalb das alles dann ziemlich eckig aussieht (vgl. das angehängte Bild).
Ich habe mir 8 bools gemacht:
Code:
private boolean right, left, up, down, leftToTop, leftToBottom, rightToTop, rightToBottom
Mit diesen lege ich eben fest, in welche Richtung sich die Linie "bewegen" soll - so:
Java:
if(right){
lineX++;
lineY += 0;
} else if(left){
lineX--;
lineY += 0;
} else if(up){
lineX += 0;
lineY--;
} else if(down){
lineX += 0;
lineY--;
} else if(rightToTop){
lineX++;
lineY--;
} else if(leftToTop){
lineX--;
lineY--;
} else if(leftToBottom){
lineX--;
lineY++;
} else if(rightToBottom){
lineX++;
lineY++;
}
Ich nehme erstmal am Anfang an, dass rechts true ist. Sobald ich dann einmal nach links drücke muss die Linie sich nach links-oben bewegen (also
Code:
rightToTop = true;
// rest false
Wenn ich dann wieder nach rechts gehe muss eben wieder right true werden und wenn ich weiter nach rechts gehe eben rightToBottom.
Ich habe mir überlegt einen Integer "count" zu initialisieren und ihn für rechts zu subtrahieren und für links zu addieren, wobei dann geprüft wird, ob er vor dem addieren/subtrahieren bereits bei 0/7 ist und ihn wenn es so ist jeweils auf 7 bzw. 0 zu setzen.
Jedoch ist dies doch ein ziemlich hässliche Lösung oder nicht? Würde mich sehr über Verbesserungsvorschläge freuen - habe nämlich wie ihr bestimmt merkt noch nie wirklich in JAVA gezeichnet.
Danke für Eure Hilfe
Anhänge
Zuletzt bearbeitet: