Spiel Programmieren (Kreise treffen)

SebastianM

Gesperrter Benutzer
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.
 
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 😉
 
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:

Java:
try{
myPanel.setCursor(Toolkit.getDefaultToolkit().createCustomCursor(ImageIO.read(new File("path")),new Point(0, 0), "bla"));
}
catch(Exception e){
e.printStackTrace();
}
 
Zuletzt bearbeitet von einem Moderator:
Java:
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.
 

Zurück
Oben