jump n run (JUMP Problem)

Askadi

Mitglied
Hallo...
Bin gerade dabei Java zu lernen und wollte jetz ein kleines Jump n Run programmieren ich erwarte nix davon will nur nicht weiter die Standard Studien Beispiele programmieren ...

Mein Problem Quelltext: extrem gekürzt 🙂


Java:
if(event.getKeyCode() == KeyEvent.VK_SPACE)
				{
					int sprung = 50;   // sprunghöhe
					
					// hochspringen
					for(int i = 0;i < sprung;i++)
					{
						figur.setBounds(figur.getX(), figur.getY()-1,figur.getWidth(),figur.getHeight());
					}
					//wieder runter fallen
					for(int i = 0;i < sprung;i++)
					{
						figur.setBounds(figur.getX(), figur.getY()+1,figur.getWidth(),figur.getHeight());
					}					
				}


Da ich keine Ahnung habe wie man so etwas normalerweise realisieren würde habe ich gedacht mit 2 schleifen wie man sieht jedoch werden sie wohl so schnell durchlaufen das man es nicht sieht was passiert .
EDIT: lässt man die 2. Schleife weg springt die Figur auch bleibt aber dann in der Luft stehen darum eigtl die 2. Schleife !

Meine Idee wäre bei jedem schleifendurchgang jetz eine kleine Wartezeit oder etwas änliches einzusetzen die Frage ist nur wie hoffe jemand kann mir weiterhelfen.

Die figur ist übrigens ein Panel auf dem ich ein ImageIcon drauf habe 2Stück je nach Laufrichtung der figur (Panel)

Java:
final ImageIcon bild_r = new ImageIcon("src/BLEMMER_r.gif");
		final ImageIcon bild_l = new ImageIcon("src/BLEMMER_l.gif");
	
		
		final JLabel figur = new JLabel(bild_r);
		figur.setBounds(30,180,51,80);


Vielen dank im Vorraus ! 🙂
 
genau das hat google auch schon für mich gefunden Problem war das man es mit try catch ummanteln musste und es dann nicht funktionierte ...

EDIT: * @throws InterruptedException

ok damit gehts dann komischerweise doch auch ohne try catch danke für die schnelle Hilfe 🙂
 
Zuletzt bearbeitet:
was funktionierte nicht?

irgendwie seltsam dachte das Problem wäre gelösst aber wohl doch nicht habe auf die schnell eine Schleife mit dem Thread gemacht:

Java:
        for(int i = 0;i < 100;i++)
        {
            System.out.println(i);
            Thread.sleep(200);
        }

Eclipse schlägt mir dann vor 1x try catch oder eben: @throws InterruptedException
wenn ich die Exception nehme wird alles perfekt verzögert ausgegeben bei meinem Jump n Run gehts das leider nicht
 
Java:
// Von Hand getippt, evtl. sind tippfehler drin. IDE's wird meckern falls ja
try {
     Thread.sleep(200);
} catch(InterruptedException e) {
     e.printStackTrace();
}

ist klar, wenn du eine throws-Anweisung an die Methode hängst und die nicht abfängst, dass das Probleme macht. Setz einfach mal den try-catch-block. In deinem Beispiel hängst du das throws InterruptedException wohl an die main(String[] args) und damit hast du "scheinbar" keine Probleme, weil die main eben die Einstiegsmethode ist.

MFG

Tomate_Salat
 
Spielentwicklung als Anfänger halte ich für keine gute Idee, eben weil man dafür meist Multithreading benötigt.
 
Mich wundert's, dass sich in deinem Code überhaupt etwas bewegt, da der EDT während der Schleifendurchläufe geblockt sein, sich der Spieler also erst 50 Pixel hochbewegen, anschließend wieder runterbewegen und dann neu gezeichnet werden sollte...
Aber alleine an dem kleinen Ausschnitt von Code kann ich dir sagen, dass du dich auf dem falschen Weg befindest. Schau dir am besten mal ein bis zwei Tutorials bezüglich 2D-Spieleprogrammierung an (ich empfehle das Tutorial von Quaxli, mit dem sich, wenn man es verstanden hat, schon einiges anfangen lässt).
 
Nein, das bringt ihm auch nichts, wenn ihm Grundlagen fehlen. Du hast bei "simplen" Animationen schon Probleme. Bedenke du brauchst Collisionserkennung, eine Map (höhenunterschiede), und was weis ich noch alles. Wird zwar alles im tutorial von z.B. Quaxli beschrieben, aber dir fehlen einfach wichtige Grundlagen und du willst zuviel auf einmal.
 
Nein, das bringt ihm auch nichts, wenn ihm Grundlagen fehlen. Du hast bei "simplen" Animationen schon Probleme. Bedenke du brauchst Collisionserkennung, eine Map (höhenunterschiede), und was weis ich noch alles. Wird zwar alles im tutorial von z.B. Quaxli beschrieben, aber dir fehlen einfach wichtige Grundlagen und du willst zuviel auf einmal.


hasste bestimmt recht aber werds mir mal anschaun Tutorials können nie schaden irgendwas bleibt sicher hängen danke für eure hilfe ich belass es dann erstmal dabei 🙂
 

Zurück
Oben