# Spiel Programmieren (Kreise treffen)



## SebastianM (27. Jun 2011)

Hallo zusammen,
ich beschäftige mich jetzt seit einem Jahr mit Java, da wir in der Schule BlueJ gearbeitet haben. Nun habe ich vor mal so ein kleines Spiel zu programmieren, allerdings ist mir schon bei Beginn aufgefallen, dass mir doch noch das nötige Wissen fehlt.
Also, mein Ziel: Ein Fadenkreuz, das mit der Maus gesteuert wird. Kreise (evtl. später Bildchen) tauchen an Zufallsstellen auf, bleiben kurze Zeit da, in der Zeit muss das angeklickt werden um Punkte zu bekommen. Später sollen die Kreise nur noch kürzer bleiben, es dafür aber mehr Punkte geben. Wenn man drei Kreise verpasst hat, oder daneben geklickt hat, soll das Spiel vorbei sein.

Also, was ich schonmal geschafft habe, ist ein Fadenkreuz, was der Maus "hinterherläuft".
Könnt ihr mir einen Ansatz verraten, wie ich es schaffe das geprüft werden kann, ob in einem Zufallskreis geklickt wurde, und dafür auch noch Punkte gezählt werden?

Würde mich um Anregungen freuen.

S.M.


----------



## triopsfreak (27. Jun 2011)

In dem Fall solltest du dafür Graphics2D nehmen, darauf kannst du dann mit Ellipse2D Kreise zeichnen, dies Klasse (Ellipse2D) hat die Methode contains(Point p), damit kannst du erfragen ob ein bestimmter Punkt, also die Maus innerhalb des Kreises liegt. Wie du die Mausposition erfragst weisst du hoffentlich


----------



## noobadix (27. Jun 2011)

Hallöchen!

Was DU brauchst, ist ein MouseListener auf einem JPanel. Überschreibe die Methode mouseClicked(...) und fang tolle Events ab!
Code auch die Methode JPanel.setCursor(...), der du selbst erstellte Images übergeben kannst:


```
try{
myPanel.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(ImageIO.read(new File("path")),new Point(0, 0), "bla"));
}
catch(Exception e){
e.printStackTrace();
}
```


----------



## thewulf00 (27. Jun 2011)

Also:

- Fadenkreuz: Würde ich über eine Änderung des Mauscursors machen.
- Kreise klicken: Du solltest das MouseEvent abfangen (per Listener) und dann prüfen, ob der Klick innerhalb einer der Kreise liegt. Dazu brauchst Du eine Liste mit Kreisen und deren Koordinaten.

Informationen und Tutorials:
The Java 2D games tutorial
The Java 2D tutorial


----------



## ChrisKu (27. Jun 2011)

```
Könnt ihr mir einen Ansatz verraten, wie ich es schaffe das geprüft werden kann, ob in einem Zufallskreis geklickt wurde, und dafür auch noch Punkte gezählt werden?
```

Du brauchst dafür einen MouseEventHandler. Beim Click kannst Du den Punkt der Mouse abfragen. Dann musst Du nur noch abfragen, ob sich der Punkt innerhalb des Kreises befindet.


----------



## wessi86 (1. Jul 2011)

Fadenkreuz: 

```
Cursor c = new Cursor(Cursor.CROSSHAIR_CURSOR);
this.setCursor();
```

*Besser *wäre es allerdings, sich ein PNG zu erstellen und dieses als Mauszeiger zu benutzen:
Java ist auch eine Insel – 15.34 Selbst definierte Cursor

mfg, Christian


----------

