# Anfänger Problem mit einen MouseMotionListener



## MiniDirk (2. Jul 2006)

Hallo zusammen,

ich muss für die Uni ein kleine Java Projekt genauer gesagt ein Java Spiel Programmieren, jetzt habe ich hier im Forum schon einiges gelesen auch schon ein paar Tutorials durchgearbeitet.

Doch jetzt komme ich schon an meine Grenzen

Ich habe hier ein Fenster in dem 2 Bewegungen gleichzeitig ablaufen sollen, ein Ball der durch das Spielfeld fliegt und einen Schläger der mit der Maus bewegt werden soll, der Ball fliegt schön brav durch die Gegend nur warum bewegt sich mein Schläger nicht?

Meiner Meinung nach müsste doch alles richtig sein.

Danke schon mal für eure Hilfe.





```
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;

public class Spiel extends Canvas {
	public static final int breite = 800, hoehe = 600, pause = 10;

	public int posX = 0, posY, schlaegerX, ballRadius = 10, richtung = 1;

	public BufferStrategy strategy;

	public Spiel() {

		Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
		Frame fenster = new Frame();

		fenster.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}
		});

		fenster.add(this);

		fenster.addMouseMotionListener(new MouseMotionListener() {
			public void mouseDragged(MouseEvent e) {
			}

			public void mouseMoved(MouseEvent e) {

				schlaegerX = e.getX();

			}
		});

		fenster.setTitle("BAP - Spiel");
		fenster.setSize(breite, hoehe);
		fenster.setBackground(Color.black);
		fenster.setLocation((d.width - fenster.getWidth()) / 2,
				(d.height - fenster.getHeight()) / 2);
		fenster.setResizable(false);
		fenster.setVisible(true);

		createBufferStrategy(2);
		strategy = getBufferStrategy();
	}

	public void zeichneSpielfeld() {
		Graphics g = strategy.getDrawGraphics();

		g.setColor(getBackground());
		g.fillRect(0, 0, getWidth(), getHeight());
		g.setColor(Color.red);
		g.fillOval(posX, 200, 2 * ballRadius, 2 * ballRadius);
		g.fill3DRect(schlaegerX,545,50,12,true);                    /* Der soll sich bewegen*/
		strategy.show();
	}

	public void updateFenster() {

		if (posX > breite - (2 * ballRadius + 3)) {
			richtung = -1;
		} else if (posX == 0) {
			richtung = +1;
		}

		posX = posX + richtung;

	}

	public void game() {
		while (isVisible()) {
			updateFenster();
			zeichneSpielfeld();

			try {
				Thread.sleep(pause);
			} catch (InterruptedException e) {

			}
		}
	}

	public static void main(String[] args) {

		Spiel bap = new Spiel();
		bap.game();
	}
}
```


----------



## André Uhres (2. Jul 2006)

```
fenster.addMouseMotionListener(new MouseMotionListener() {
```
ersetzen durch:

```
addMouseMotionListener(new MouseMotionListener() {
```


----------



## MiniDirk (2. Jul 2006)

Danke


----------

