Tastatur.wurdeGedrueckt() macht nicht das, was ich will :/

HerrBerger

Neues Mitglied
Hallo Communitiy

Ich hatte mir vorgenommen zum Einstieg in Java ein einfaches Dart-Spiel zu programmieren.
Zu Beginn des Spiels soll der Pfeil am linken Bildschirmran gerade herunterfallen. Wird die Tastatur einmal gedrückt, so bleibt er auf seiner aktuellen Höhe und fängt an sich zu drehen. Beim zweiten mal wird auch seine Ausrichtung fixiert.

Der betreffende Programmcode ist folgender:

[Java]public void Pfeilwurf()
{
Oberflaeche();
BST.bewegeBis(200,50);
//Fallen
for(int x = 10; x <= 500; x = x+1)
{
ZeichnePfeil(50,x);
UH.warte(50);
BST.hoch();
BST.bewegeBis(45,x-10);
BST.setzeFarbe(Farbe.WEISS);
BST.setzeFuellmuster(Muster.GEFUELLT);
BST.zeichneRechteck(40,30);
if(x == 500)
{
x = 10;
}
if(TST.wurdeGedrueckt())
{
BSTReset();
ZeichnePfeil(50,x);
TST.weiter();
break;
}
}
//Drehen
double vpd = BST.vPosition();
int vp = (int)vpd;
UH.warte(1000);
boolean beenden = false;
for(int x = 30; x >= -30; x--)
{
BST.dreheBis(x);
ZeichnePfeil(50,vp);
UH.warte(10);
BST.bewegeBis(45,vp-50);
BST.setzeFarbe(Farbe.WEISS);
BST.setzeFuellmuster(Muster.GEFUELLT);
BST.zeichneRechteck(40,100);
if(x == -30)
{
for(x = -30; x <= 30; x++)
{
BST.dreheBis(x);
ZeichnePfeil(50,vp);
UH.warte(10);
BST.bewegeBis(45,vp-50);
BST.setzeFarbe(Farbe.WEISS);
BST.setzeFuellmuster(Muster.GEFUELLT);
BST.zeichneRechteck(40,100);
if(TST.wurdeGedrueckt())
{
beenden = true;
TST.weiter();
break;
}
}
}
if(TST.wurdeGedrueckt())
{
beenden = true;
TST.weiter();
}
if(beenden = true)
{
BST.dreheBis(x);
ZeichnePfeil(50,vp);
break;
}
}
}
[/code]
Das Problem liegt meiner Meinung nach an der Funktion Tastatur.weiter(). Denn sobald die Tastatur das erste Mal gedrückt wurde hält der Pfeil an (was er ja auch soll), aber bleibt auch in seiner Ausrichtung fixiert (30° schräg nach oben).
Was habe ich falsch gemacht?
 
Zuletzt bearbeitet von einem Moderator:

Gucky

Top Contributor
Benutze bitte JAVA TAGS um deinen Code lesbarer zu machen.

Wir haben keine Ahnung, was die einzelnen Methoden (in Java gibt es keine Funktionen) tun, sind ein paar Hintergrundinformationen wünschenswert. Was macht Tastatur#weiter()?
Was tun die ganzen Methoden? Halten sie den aktuellen Thread so lange an, bis etwas passiert oder fragen sie nur ein Boolean ab und das war's?

Die Methode ist viel zu lang. Wenn du das Gesamtproblem in viele Kleine (Methoden) zerlegst, dann sollte die Lösung leichter zu erreichen sein.

Wie ich sowas spontan lösen würde:
Ein Thread ist für das Zeichnen des Pfeils zuständig und tut auch nur das. Ein Anderer ist für das Reagieren auf Ereignisse vom Benutzer. Wenn der Benutzer ein Ereignis ausgelöst hat, so wird der Zeichenthread darüber in Kenntnis gesetzt, dass er etwas Anderes zu zeichnen hat. Zum Beispiel wird eine Variable status einen hochgezählt und noch weitere Informationen gesetzt und so weiß der Zeichenthread, was er zeichnen soll.
Für das Hochundrunterfahren wäre status auf 0.
Dann löst der Benutzer ein Ereignis aus, status wird auf 1 gesetzt und die aktuelle Höhe wird gespeichert. Der Pfeil rotiert.
Der Benutzer löst noch ein Ereignis aus, status wird auf 2 gesetzt, der Winkel wird gespeichert und noch etwas passiert (Kraftanzeige pendelt o.Ä.).
Das ist natürlich noch nicht der Weisheit letzter Schluss aber so sollte es erst einmal funktionieren.
 

HerrBerger

Neues Mitglied
Oh natürlich, tut mir leid...

Ihr kennt natürlich alle BlueJ und die SuM-Bibliotheken nicht,mit denen ich programmiere. Wie konnte ich das vergessen :oops:
Aber danke trotzdem für die Antwort!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
S Tastatur input lesen Java Basics - Anfänger-Themen 7
S Probleme mit GamGrid Spiel-Erstellung => Actor reagiert nicht auf Tastatur Java Basics - Anfänger-Themen 2
T Tastatur mit robot ß ^ und @ simulieren Java Basics - Anfänger-Themen 4
N Tastatur simulieren Java Basics - Anfänger-Themen 4
T Tastatur angeschlossen? Java Basics - Anfänger-Themen 3
V Tastatur initialisieren JFrame Probleme Java Basics - Anfänger-Themen 6
T relais über virtuelle tastatur ansprechen Java Basics - Anfänger-Themen 6
S Text über Tastatur eingeben und ausgeben Java Basics - Anfänger-Themen 6
S Tastatur zuweisungen Java Basics - Anfänger-Themen 3
F Frage zu amerikanischer Tastatur Java Basics - Anfänger-Themen 9
E Tastatur Java Basics - Anfänger-Themen 3
P Tastatur funktioniert nicht Java Basics - Anfänger-Themen 4
E auf Tastatur reagieren Java Basics - Anfänger-Themen 8
D Datentypen SUM-Kern Tastatur Hotkey Java Basics - Anfänger-Themen 2
H Problem mit Tastatur Befehl Java Basics - Anfänger-Themen 11
P Eingabe von Tastatur Java Basics - Anfänger-Themen 4
P Problem mit der Tastatur Java Basics - Anfänger-Themen 31
G Strings von Tastatur einlesen und in ArrayList speichern Java Basics - Anfänger-Themen 12
Spin Von der Tastatur einlesen grafisch Java Basics - Anfänger-Themen 2
T Tastatur Tasten Senden Java Basics - Anfänger-Themen 4
Misti Eingabe Tastatur bzw. Datei Java Basics - Anfänger-Themen 6
G Zu Laufzeit von Tastatur einlesen Java Basics - Anfänger-Themen 11
S Von der Tastatur eingelesene Strings miteinander vergleichen Java Basics - Anfänger-Themen 4
J Tastatur-Puffer leeren Java Basics - Anfänger-Themen 3
A JTable nimmt eingaben von tastatur nicht an? Java Basics - Anfänger-Themen 2
M Tastatur.leseZahl(); geht nicht in Methoden ? Java Basics - Anfänger-Themen 3
M Fokus mit Maus und Tastatur Java Basics - Anfänger-Themen 5
M Eclipse --> Befehl: "Tastatur.leseKommazahl();" Java Basics - Anfänger-Themen 6
V Tastatur Abfrage im Lisener für eine Auswahl üder Textfeld Java Basics - Anfänger-Themen 8
N Tastatur direkt einlesen (ohne Enter) Java Basics - Anfänger-Themen 3
B Tastatur abfangen Java Basics - Anfänger-Themen 11
D Unsichtbar von der Tastatur einlesen Java Basics - Anfänger-Themen 7
B Eingabe von Tastatur Java Basics - Anfänger-Themen 2
B import class.tastatur Java Basics - Anfänger-Themen 2
E Array ueber Tastatur einlesen Java Basics - Anfänger-Themen 2
I einen text von tastatur in array einlesen und auch ausgeben Java Basics - Anfänger-Themen 1
G Eine ganze Zeile von der Tastatur einlesen! Java Basics - Anfänger-Themen 2
M Ein Zeichen von der Tastatur einlesen Java Basics - Anfänger-Themen 6
M Programm soll n Zahlen von der Tastatur lesen(Mittelwert) Java Basics - Anfänger-Themen 8
S tastatur ungepuffert abfragen Java Basics - Anfänger-Themen 3
D Nochmal zu den dummen Eingaben über Tastatur Java Basics - Anfänger-Themen 15
M Maus und Tastatur Java Basics - Anfänger-Themen 5
F Tastatur in Java Java Basics - Anfänger-Themen 12
G Maus+Tastatur aktionen simulieren? Java Basics - Anfänger-Themen 5
D Ein Wort einlesen über Tastatur und wieder ausgeben Java Basics - Anfänger-Themen 6
T Tastatur Java Basics - Anfänger-Themen 2
B Tastatur eingaben abfragen und dann in Argumente zerlegen..? Java Basics - Anfänger-Themen 8
D Interfaces von Interfaces macht das noch Sinn? Java Basics - Anfänger-Themen 21
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
berserkerdq2 Warum macht man in IJVM am Anfang Bipush 0? Java Basics - Anfänger-Themen 1
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
K Gleitkommazahl macht man 0 punkt matisse oder 1 punkt matisse Java Basics - Anfänger-Themen 2
B Methoden warum macht die Methode nicht das was ich erwarte? Java Basics - Anfänger-Themen 2
E Macht Java Rechenfehler beim Potenzieren und Mod? Java Basics - Anfänger-Themen 5
V Switch Methode macht Code kaputt Java Basics - Anfänger-Themen 18
N Was macht die Klasse? Java Basics - Anfänger-Themen 3
T Was macht diese Zeile? Java Basics - Anfänger-Themen 9
R getUserProperties() macht für mich keinen Sinn Java Basics - Anfänger-Themen 8
L Was genau macht -> Java Basics - Anfänger-Themen 18
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
U Best Practice Fehleranalyse, welche Fehler macht Ihr beim Lernen bzw. auch später Java Basics - Anfänger-Themen 12
L Hilfe! Was macht dieser Code? Java Basics - Anfänger-Themen 1
C Was macht `public class ClassName<T extends Comparable<T>>`? Java Basics - Anfänger-Themen 14
M Was macht super (...)? Java Basics - Anfänger-Themen 1
Tommy135 Klassen jComboBox macht nicht was sie soll Java Basics - Anfänger-Themen 4
J JButton macht was er will Java Basics - Anfänger-Themen 3
R While-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 24
JavaNewbie2.0 Habe ein frage wie man etwas macht. Java Basics - Anfänger-Themen 13
B Was macht diese Methode? Java Basics - Anfänger-Themen 9
P Was macht diese methode Java Basics - Anfänger-Themen 2
Tacofan Was macht dieses "Stückchen Code"? Java Basics - Anfänger-Themen 3
F JSON null macht mir ein Problem Java Basics - Anfänger-Themen 3
L Was genau macht "public static void" ? Java Basics - Anfänger-Themen 12
C Hilfe - Kleines Programm macht mir Schwierigkeiten Java Basics - Anfänger-Themen 2
G Methoden Was genau macht die Methode light.setInfluencingBounds ? Java Basics - Anfänger-Themen 5
B Erste Schritte Way of life ohne import - Habe Beispiel, macht Unfug Java Basics - Anfänger-Themen 21
D Methoden Filewriter macht keine Zeilenumbrüche Java Basics - Anfänger-Themen 3
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
K Was macht hier genau return? Java Basics - Anfänger-Themen 2
E Einfache For-Schleife macht nicht was sie soll Java Basics - Anfänger-Themen 2
J Shakersort, das Array macht Probleme! Java Basics - Anfänger-Themen 4
A scan.nextLine() - Wenn man zu lange nichts macht, soll etwas passieren Java Basics - Anfänger-Themen 3
C Scrollpanel autoscroll(false) macht nix Java Basics - Anfänger-Themen 2
M StringTokenizer macht Quatsch Java Basics - Anfänger-Themen 21
N Papaklasse macht Zicken mit Parameterkonstruktor Java Basics - Anfänger-Themen 7
K Datentypen double x als Bruch aus Integern macht x zu integer? Java Basics - Anfänger-Themen 3
C Erste Schritte was macht eigentlich "for (;;)" Java Basics - Anfänger-Themen 7
C JDK-Installer macht nichts Java Basics - Anfänger-Themen 11
A JApplet: einbinden von weiteren Jars macht Probleme Java Basics - Anfänger-Themen 2
B Variablen Wie macht man eine call by reference mit primitiven Datentypen in Java? Java Basics - Anfänger-Themen 2
I Für was macht man "deep Kopien" Java Basics - Anfänger-Themen 4
S Erste Schritte While do Schleife - macht nicht was sie soll Java Basics - Anfänger-Themen 7
9 Programm macht nicht was es soll Java Basics - Anfänger-Themen 6
H Was macht diese Methode? Java Basics - Anfänger-Themen 3
S JApplet macht Probleme Java Basics - Anfänger-Themen 2
Y Was macht folgende Regular Expression Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben