myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

[Java] Probleme mit Snake

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 03.02.12, 16:28   #1
matzestinks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 26
Bedankt: 2
matzestinks ist noch neu hier! | 0 Respekt Punkte
Standard [Java] Probleme mit Snake

hi, hab gerade angefangen Snake zu programmieren. Doch jetzt schon komme ich nicht weiter. Wahrscheinlich nur ein kleinerer logischer Fehler auf den ich nicht komme. Ein kleiner Tipp wäre hilfreich!

[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

1. Wieso springt er nicht aus der while-Schleife wenn ich eine andere Taste drücke?
2. Warum malt er die Rechtecke nicht während er in der Schleife ist?
3. Ist es OK wie ich angefangen habe das zu programmieren?

Wäre dankbar wenn jemand kurz reinschauen könnte.
matzestinks ist offline   Mit Zitat antworten
Ungelesen 05.02.12, 15:50   #2
matzestinks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 26
Bedankt: 2
matzestinks ist noch neu hier! | 0 Respekt Punkte
Standard

Also sollte ich repaint() nur durch einen Thread aufrufen?
Hab noch nicht wirklich viel mit Threads gemacht.

EDIT:
Habs jetzt geschafft! Laggt nur noch ein bisschen...
matzestinks ist offline   Mit Zitat antworten
Ungelesen 09.02.12, 18:42   #3
matzestinks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 26
Bedankt: 2
matzestinks ist noch neu hier! | 0 Respekt Punkte
Standard

Sitze nun schon seit 1-2 Stunden davor und finde einfach den Fehler nicht!
Zu dem Problem: Die Schlange bewegt sich nach dem Starten nur in eine Richtung, dh. sobald ich die Schlange in eine andere Richtung steuern will, kommt diese Fehlermeldung:

Quellcode:
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]

Hoffe der ein oder andere Erfahrene kann kurz einen Blick drüber werfen.
Danke


EDIT:
Die Fehlermeldung kommt jetzt nicht mehr, da der Thread nur einmal, beim Starten, ausgeführt wird. Das andere Problem besteht trotzdem noch.
matzestinks ist offline   Mit Zitat antworten
Ungelesen 13.02.12, 17:15   #4
matzestinks
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 26
Bedankt: 2
matzestinks ist noch neu hier! | 0 Respekt Punkte
Standard

Fragwürdig hierbei ist für mich:
Wieso springt das Programm nur in run() wenn eine Richtung vorbelegt ist?
Sobald ich dir Richtung wechsle, stoppt das Programm (das Viereck). Wieso?
Und durch das Aufrufen duchr t.run() innerhalb des Keylisteners rührt sich auch nichts.

Mit volatile hab ichs auch schon probiert..

Hatt denn niemand einen Rat parat?
matzestinks ist offline   Mit Zitat antworten
Ungelesen 13.02.12, 18:45   #5
mrburns
Newbie
 
Registriert seit: Dec 2009
Beiträge: 50
Bedankt: 28
mrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punktemrburns putzt sich die Zähne mit Knoblauch. | 2787 Respekt Punkte
Standard

Der Fehler liegt in deiner Klasse 'Listener', du kannst den Thread 't' nicht einfach stoppen und neu starten, da er mit der Methode interrupt() in einen toten Zustand übergeht und keine Anweisungen mehr annimmt, entweder du erstellst dir einen neuen Thread, oder du gehst das Problem anders an und lässt ihn weiter laufen, musst die Anweisungen für die Bewegungen aber in eine Schleife schreiben und die Fälle als switch-case-Fallunterscheidung abarbeiten.

Ich hoffe ich konnte helfen
mrburns ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.


Sitemap

().