BlueJ Objekte verschieben (java)?

2 Antworten

1. Du verwendest das Attribut "dieTastatur", ohne uns zu sagen, was das für ein Datentyp ist, was es insbesondere schwer macht, diesen Aufruf nachzuvollziehen, weil kein Schwein die SuM-Bibliothek kennt.

2. Sicher, dass dieTastatur.esc() auf LINKE PFEILTASTE prüft? Hört sich eher nach Escapetaste an.

3. Die Klasse des Attributes Kugel kennen wir ebenfalls nicht.

4. Wenn es funktionieren würde, würde die Kugel wahrscheinlich rasend schnell aus dem Bild schießen, weil ich annehme, dass diese Funktion bei gehaltener Taste unter Umständen mehrmals pro Sekunde aufgerufen wird.

Lyan15 
Fragesteller
 19.01.2017, 20:33

1. Das Attribut "dieTastatur" ist einfach der Name der Klasse, die die Tastaturbedienung aufruft. Vorher habe ich eine neue Tastatur erstellt. ( sprich: dieTastatur = new GLTastatur;) und diese auch vorher definiert. Es sagt nur aus, dass die Tastatur benutzt wird. 

2. Okay. Da habe ich die falsche Mehtode rein kopiert ohne es zu merken. Ich habe nämlich rumprobiert, ob er die Taste einfach nicht kennt und deshalb die Escapetaste genommen. Also ja... es liegt auf der Escapetaste, die aber auch nicht funktioniert. 

3. DIe Kugel ist ein Objekt aus der Gloop-Bibliothek, mit folgenden Werten: 0,1,-1000,300 (x,y,z) Viel gibt es dazu nicht zu sagen... es ruft eine Kugel auf...

4. Es tut sich gar nichts... ich würde mich freuen, wenn es sich rassend schnell bewegen würde. Dann wüsste ich was ich tun müsste, aber es tut sich gar nichts... 

0
PerfectMuffin  19.01.2017, 21:21
@Lyan15

1. dieTastatur ist der name eines Instanzattributes DEINER Klasse, auch bekannt als ein Attribut. Dieses Attribut ist vom TYPE GLTastatur, von dme ich jetzt eindlich eine Dokumentation habe.

2. Dann teste mal, ob bewegen() überhaubt ausgeführt wird, schmeiß eine unbedingte Ausgabe in die Funktion rein und guck, ob dir wa sangezeigt wird.

3. Gib mir genauen Klassennamen mit Paketpfad.

0

Mit void setzePosition(double pX, double pY, double pZ) solltest du zumindest mal eine Startposition für deine Kugel festlegen. Als nächstes solltest BEVOR du die Kugel bewegst die aktuelle Position abfragen und dann die neue Position (ausgehend von der alten) um einen entsprechenden Wert erhöhen.