Jump n Run Keylistener und Schleifen

Status
Nicht offen für weitere Antworten.

kivver

Mitglied
Hallo Leute,
ich habe ein Problem mit dem Keylistener und zwar arbeitet der Schleife erst komplett ab und übt sie dann aus anstatt jeden einzelnen schritt anzuzeigen:

Code:
        //Implementierung des KeyListeners zum Anziegen
        KeyListener l = new KeyListener(){
            public void keyPressed(KeyEvent event){
               
                if (event.getKeyCode() == KeyEvent.VK_RIGHT){
                    m.horizontalBewegen(mariosKmh);
                    abfrage();
                }
                if (event.getKeyCode() == KeyEvent.VK_LEFT){
                    m.horizontalBewegen(-mariosKmh);
                    abfrage();
                }
                if (event.getKeyCode() == KeyEvent.VK_UP){
                    m.vertikalBewegen(-mariosKmh);
                    abfrage();
                }
                if (event.getKeyCode() == KeyEvent.VK_DOWN){
                    m.vertikalBewegen(mariosKmh);
                    abfrage();
                }
                if (event.getKeyCode() == KeyEvent.VK_SPACE){
                    m.jump();
                    abfrage();
                }  
            }  
            public void keyReleased(KeyEvent event){
            }
            public void keyTyped(KeyEvent event){
            }        
        };
        //Hinzufügen des KeyListeners zur Leinwand
        Leinwand leinwand = Leinwand.gibLeinwand();
        leinwand.addKeyListener(l);

Und jetzt das "jump":


Code:
       public void horizontalBewegen(int geschwindigkeitB){
            geschwindigkeit = geschwindigkeitB;
            mario.horizontalBewegen(geschwindigkeit);
            xposUL = xposUL + geschwindigkeit;
            xposUR = xposUL + geschwindigkeit;  
        }
        
        
        public void vertikalBewegen(int geschwindigkeitB){
            geschwindigkeit = geschwindigkeitB;
            mario.vertikalBewegen(geschwindigkeit);
            yposOL = yposOL - geschwindigkeit;
            yposUL = yposUL - geschwindigkeit;  
        }
	public void jump(){
	    for (int i = 11; i>0; i--){
		mario.vartikalBewegen(-geschwindigkeit * i);
	    }
	    for (int j = 0; i<11; i++){
		mario.vertikalBewegen(geschwindigkeit *j);
	    }
	}
 
S

SlaterB

Gast
lasse das ganze in einem externen Thread ablaufen,
mache Thread.sleep(10) zwischen jeden Schritt und vielleicht noch einen repaint()-Aufruf

kennst du überhaupt Grundlagen des Zeichnens in Swing?
ohne ausführliche Beispiele ist das ja schwer selber nachzuvollziehen..
 

Lulumann6

Aktives Mitglied
so kann man das doch nicht machen.
die x und y koordinaten musst du in deinem thread erneuern lassen, dann brauchst du noch eine schwerkraft für den fall, dass dein mario in der luft ist. und dort wo du mario springen lässt gibst du ihm einfach eine bestimmte geschwindigkeit nach oben und die schwerkraft zieht ihn wieder nach unten.
 

kivver

Mitglied
dass ich ein slepp eingefügt habe, hat leider auch nicht funktioniert (hatte ich schon ausprobiert)
und repaint auch nicht

@Lulumann: das is nur jetzt schnell zusammengelegt, eigentlich will ich das mit den normalen Formel (v=v0+g*t) ausrechnen dass war jetzt nur ein bsp.
 

Lulumann6

Aktives Mitglied
ohne sleep und repaint wirst du ganz bestimmt kein spiel programmieren können.


hier hat sich jemand schon die mühe gemacht ein kleines deutsches tuorial für die anfänge in der spieleprogrammierung zu machen. und hier der link direkt zum tutorial. dort wird alles sehr gut erklärt finde ich.
 

kivver

Mitglied
Lulumann6 hat gesagt.:
ohne sleep und repaint wirst du ganz bestimmt kein spiel programmieren können.

das hab ich ja auch nicht vor aber in diesem Fall hat es nix gebracht

Aber ich hatte eigentlich nur eine Frage gestellt:

Warum funktionieren Schleifen nicht, wenn man sie durch den Keylistener aufruft und wie kann man das beheben!???
 

EgonOlsen

Bekanntes Mitglied
Das klappt so nicht, weil der KeyListener und das Zeichnen (sofern du kein aktives Rendering zu verwendest, was nicht der Fall zu sein scheint) im gleichen Thread, dem AWT-Event-Thread, ablaufen. Dadurch wird erst die komplette Schleife durchlaufen, dann siehst du den Endzustand beim nächsten Zeichnen.
 

kivver

Mitglied
Also muss ich das alles in einen anderen Thread packen?

oder was kann ich sonst noch mach: aktives Rendering?? könntest du mir das mal erklären??

Aber erstmal Danke
 
S

SlaterB

Gast
nebenbei eine Meinung:
Lulumann6 hat doch zwei Links gepostet, hast du die bereits eine Woche lang durchgearbeitet?
kaum zu glauben in der kurzen Zeit gestern ;)

warum hier alles wiederholen wenn du es doch im Tutorial korrekt nachlesen kannst?
ohne diese Grundlagen wirst du noch zig Nachfragen haben
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Mein Jump and Run charakter bewegt sich nicht mehr rückwärts... Spiele- und Multimedia-Programmierung 0
E Möchte Jump and Run programmieren Spiele- und Multimedia-Programmierung 2
N Jump and run Spiel - wo anfangen / weitermachen? Spiele- und Multimedia-Programmierung 11
F Jump'n Run Background wiederholen Spiele- und Multimedia-Programmierung 3
E Java Jump and Run Map zu groß Spiele- und Multimedia-Programmierung 14
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
Finalspace Entwicklung eines Jump & Run Spiels Video-Tutorial Spiele- und Multimedia-Programmierung 12
C Doodle Jump Sprung Physik? Spiele- und Multimedia-Programmierung 4
M Jump 'n' Run Game - Blöcke? Spiele- und Multimedia-Programmierung 7
N Problem mit Kollisionsabfrage beim Fallen Jump & Run Spiele- und Multimedia-Programmierung 5
M Empfehlungen für ein 2D-Jump'n'run Spiele- und Multimedia-Programmierung 4
W Doodle Jump Spiele- und Multimedia-Programmierung 6
H Jump&Run Tutorial Spiele- und Multimedia-Programmierung 3
D Jump'n'run Kollision bei Blöcken Spiele- und Multimedia-Programmierung 10
K Jump'N'Run Hügel Spiele- und Multimedia-Programmierung 11
T Jump and Run - Unklarheiten Spiele- und Multimedia-Programmierung 5
Arcus Jump and Run etwas komplizierter - Benötige Starthilfe Spiele- und Multimedia-Programmierung 12
T Ist meine Jump and Run Engine zu genau? Spiele- und Multimedia-Programmierung 4
N Grundlagen für ein Jump&Run Spiele- und Multimedia-Programmierung 3
F "Doodle Jump" Projekt Spiele- und Multimedia-Programmierung 8
U Jump n' Run 2D Geometrie und Kollisionsabfrage? Spiele- und Multimedia-Programmierung 11
L Jump-n-Run Auslastung verringern Spiele- und Multimedia-Programmierung 16
Apo Kollisionserkennung bei Jump'n'Run Spiele- und Multimedia-Programmierung 69
F jump and run idee Spiele- und Multimedia-Programmierung 2
T Umsetzung eines 2D Jump and Runs Spiele- und Multimedia-Programmierung 7
F DJADD Jump and Run Spiele- und Multimedia-Programmierung 10
D Jump 'n run die 2. [spielerbewegen mit zeit] Spiele- und Multimedia-Programmierung 6
D Jump and Run Game -- Kollisionsabfrage Spiele- und Multimedia-Programmierung 30
S Kollisionsprob bei Jump&Run Spiele- und Multimedia-Programmierung 9
S Jump'n'Run: Probleme mit Kollision Spiele- und Multimedia-Programmierung 13
B KeyListener Bug Spiele- und Multimedia-Programmierung 2
M KeyListener funktioniert nicht während Timer läuft Spiele- und Multimedia-Programmierung 26
B Den KeyListener in einer JavaFXML Application benutzen Spiele- und Multimedia-Programmierung 2
A TileMap KeyListener - Problem Spiele- und Multimedia-Programmierung 2
R Probleme mit JPanel!KeyListener geht nicht Spiele- und Multimedia-Programmierung 6
M KeyListener Spiele- und Multimedia-Programmierung 8
T Problem mit JnR-Steuerung / KeyListener Spiele- und Multimedia-Programmierung 6
A KeyListener - Thread Problem Spiele- und Multimedia-Programmierung 2
F Problem mit KeyListener in Applet Spiele- und Multimedia-Programmierung 4
StrikeTom KeyListener Funktioniert nicht Spiele- und Multimedia-Programmierung 3
D Space Invaders(KeyListener Problem) Spiele- und Multimedia-Programmierung 3
S Ping Pong: KeyListener in Paint und while Spiele- und Multimedia-Programmierung 10
Developer_X Java "Multi"KeyListener Spiele- und Multimedia-Programmierung 15
C Anfängerfrage: Plazierung Panel im JFrame und KeyLIstener Spiele- und Multimedia-Programmierung 4
A Mit KeyListener zwei Tasten gleichzeitig abfragen Spiele- und Multimedia-Programmierung 2
T Doppel KeyListener Spiele- und Multimedia-Programmierung 16
S Probleme mit dem Licht und dem KeyListener Spiele- und Multimedia-Programmierung 2
M Jpanel mit Keylistener Spiele- und Multimedia-Programmierung 6
D Pfeiltasten beim KeyListener Spiele- und Multimedia-Programmierung 1
R KeyListener hält nicht mit Spiele- und Multimedia-Programmierung 14
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Schleifen um abzufragen, ob der Spieler "tot" ist Spiele- und Multimedia-Programmierung 6
Developer_X Java3D und while schleifen Spiele- und Multimedia-Programmierung 4

Ähnliche Java Themen

Neue Themen


Oben