Auf Tastendruch reagieren

  • Themenstarter Themenstarter Jonny0815
  • Beginndatum Beginndatum
J

Jonny0815

Gast
Hy

eigentlich sollte sich mein roter ball ja nach rechts bewegen (oder nach links ?)
tut er aber nicht X[
was mach ich falsch ?

[Java=42]
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Main extends Applet implements Runnable, KeyListener
{
//Variablen Ball

/**
*
*/
private static final long serialVersionUID = -484510456868672776L;
int x=20;
int y=20;
int radius=20;
KeyEvent ev;

// Spielthread
private Thread th;

// Variablen für die Doppelpufferung
private Image dbImage;
private Graphics dbg;

public void init()
{
setBackground(Color.blue);

addKeyListener(this);

}

public void start()
{
// Schaffen eines neuen Threads, in dem das Spiel läuft
th = new Thread(this);
// Starten des Threads
th.start ();
}

@SuppressWarnings("deprecation")
public void stop()
{
// Thread stoppen
th.stop();
// Thread auf null setzen
th = null;
}

public void keyPressed(KeyEvent e) {
if (ev.getKeyChar() == KeyEvent.VK_W)

x++;

{







}
}



public void keyReleased(KeyEvent e)
{

}

public void keyTyped(KeyEvent e)
{

}







public void run()
{


}

/** Update - Methode, Realisierung der Doppelpufferung zur Reduzierung des Bildschirmflackerns */
public void update (Graphics g)
{
// Initialisierung des DoubleBuffers
if (dbImage == null)
{
dbImage = createImage (this.getSize().width, this.getSize().height);
dbg = dbImage.getGraphics ();
}

// Bildschirm im Hintergrund löschen
dbg.setColor (getBackground ());
dbg.fillRect (0, 0, this.getSize().width, this.getSize().height);

// Auf gelöschten Hintergrund Vordergrund zeichnen
dbg.setColor (getForeground());
paint (dbg);

// Nun fertig gezeichnetes Bild Offscreen auf dem richtigen Bildschirm anzeigen
g.drawImage (dbImage, 0, 0, this);
}


public void paint (Graphics g)
{

// Setzten der Zeichenfarbe auf Rot
g.setColor (Color.red);

// Zeichen eines gefüllten Kreises
g.fillOval (x - radius, y - radius, 2 * radius, 2 * radius);

}
}
[/Java]

thx
Jonny0815
 
Versuch mal ein
Code:
repaint();
in Zeile 95 🙂
und Zeile 92 solltest du mal das [c]ev[/c] abändern zu e ^^
 
ja kalr XD

bin ja auch blöd XD
aber es geht i-wie immernoch nit er macht frames aber der ball verschiebt sich trozdem nit ?

thx
Jonny0815
 
Ach verdammt sorry, da hab ich auch zu shcnell geantwortet und nicht richtig geguckt:
Java:
	public void keyPressed(KeyEvent e) {
		if (e.getKeyCode() == KeyEvent.VK_W) {
			x++;
			repaint();
		}
	}

so sollte es gehen(Klammerung + getKeyCode)
 

Neue Themen


Zurück
Oben