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 KeyTyped Event Problem

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 11.01.11, 07:56   #1
gawu
Anfänger
 
Registriert seit: Oct 2009
Beiträge: 3
Bedankt: 1
gawu ist noch neu hier! | 0 Respekt Punkte
Standard Java KeyTyped Event Problem

Hallo Leute,

habe folgendes Problem:

In einem von mir mit Java geschriebenen Spiel soll eine Spielfigur einen Stein wegtreten, wenn sie direkt davor steht.

Die Kollisionsabfrage mit Figur und Stein funktioniert einwandfrei, jedoch wird mit Drücken von Space das Wegtreten dauerhaft eingeschaltet.

Bedeutet also, dass wenn ich einmal Space drücke und der Stein wegfliegt, ich anschließend zum nächsten Stein gehe und ihn berühre, dieser ebenfalls ohne erneuten Tastendruck wegfliegt.

Statt diesem Ein-/Ausschalten der Stein-Aktion hätte ich gerne den Steinflug als einmaliges Event, welches jedes Mal erneut mit Space ausgeführt werden soll wenn der Protagonist vor einem Stein steht.

Über Lösungsvorschläge würde ich mich sehr freuen. Danke!
gawu ist offline   Mit Zitat antworten
Ungelesen 11.01.11, 11:32   #2
AllYouCanEat
Banned
 
Registriert seit: Jan 2011
Beiträge: 16
Bedankt: 12
AllYouCanEat ist noch neu hier! | 0 Respekt Punkte
Standard

Ehrlich gesagt frage ich mich wo genau das Problem ist?

Für Tastatureingaben gibt es bei Java Events. Da kannst Du SWT, AWT, Swing etc. benutzen u.v.m.
Diese Events werden jedesmal ausgelöst, wenn eine entsprechende Taste gedrückt wird!
Also nicht nur einmal!

Entweder fehlt bei Dir Verständnis oder es liegt ein Design-/Programmierfehler vor.
AllYouCanEat ist offline   Mit Zitat antworten
Ungelesen 11.01.11, 11:35   #3
harbok
Erfahrener Newbie
 
Registriert seit: May 2009
Beiträge: 116
Bedankt: 93
harbok ist noch neu hier! | 0 Respekt Punkte
Standard

Hast Du vielleicht einfach mal debugged, warum der "Steinwegwurf" überhaupt konstant ausgeführt wird? Das sollte ja eigentlich nur einmal geschehen, wenn Du das Tastaturevent für die Leertaste bekommen hast.
harbok ist offline   Mit Zitat antworten
Ungelesen 11.01.11, 20:09   #4
mande
Anfänger
 
Registriert seit: Apr 2010
Beiträge: 24
Bedankt: 28
mande ist noch neu hier! | 0 Respekt Punkte
Standard

Kann es sein, dass du das mit einer boolschen Variable löst, ála
Code:
steinFliegt=true;
und diese nicht mehr zurücksetzt?
mande ist offline   Mit Zitat antworten
Ungelesen 11.01.11, 21:59   #5
m3zz0w1x
Banned
 
Registriert seit: Dec 2010
Beiträge: 90
Bedankt: 91
m3zz0w1x ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von mande Beitrag anzeigen
Kann es sein, dass du das mit einer boolschen Variable löst, ála
Code:
steinFliegt=true;
und diese nicht mehr zurücksetzt?
Das wird nicht funktionieren, denn dann könnte jeweils immer nur ein Stein fliegen.
Was aber wenn ein zweiter Stein gekickt wird während ein anderer noch fliegt?

Mit Events muss das funktionieren. Daher liegt eher irgendwo ein Programmier- oder Designfehler vor.
m3zz0w1x ist offline   Mit Zitat antworten
Ungelesen 12.01.11, 08:07   #6
gawu
Anfänger
 
Registriert seit: Oct 2009
Beiträge: 3
Bedankt: 1
gawu ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Kann es sein, dass du das mit einer boolschen Variable löst, ála
Code:
steinFliegt=true;
und diese nicht mehr zurücksetzt?
Richtig. Die Variable bleibt danach wie sie ist. Jedes mal wenn ich zu einem neuen Stein gehe fliegt dieser ohne Tastendruck sofort weg.


Zitat:
Das wird nicht funktionieren, denn dann könnte jeweils immer nur ein Stein fliegen.
Was aber wenn ein zweiter Stein gekickt wird während ein anderer noch fliegt?
Es kann durchaus ein zweiter Stein parallel zum ersten fliegen, jedoch wie oben beschrieben ohne erneuten Tastendruck. Du gehst zum ersten Stein - Leertaste - Stein fliegt weg - du gehst zum 2. zum 3. zum 4. Stein und alle fliegen weg.
gawu ist offline   Mit Zitat antworten
Ungelesen 12.01.11, 15:17   #7
m3zz0w1x
Banned
 
Registriert seit: Dec 2010
Beiträge: 90
Bedankt: 91
m3zz0w1x ist noch neu hier! | 0 Respekt Punkte
Standard

Wozu benötigst Du eine globale Variable, wenn die Stein-fliegt-Aktion durch Events ausgelöst wird?

[Space-Taste] > löst [KeyEvent] aus > lässt den Stein fliegen

Der Fehler liegt dann eher in Deinem Code bzw. Verständnis.

Poste doch Deinen Code... richtig helfen kann man Dir sonst nicht.
m3zz0w1x 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 02:36 Uhr.


Sitemap

().