Zeichnung pacman in Java
Hallo, für eine Schule der übung, die ich brauche um ein Spiel zu erstellen und ich habe beschlossen, Pacman. Geht alles gut, aber eine Sache, die ich nicht erreichen können ist, zeichnen Sie einen pacman dude und seine Geister.. ich gemacht und oval, aber was nun? ich möchte das pacman-Mund auch zu öffnen und zu schließen, wie es sich bewegt. kann mir jemand helfen das zeichnen?
unter dem, was ich bis jetzt:
package h04PacMan;
import java.awt.*;
public class DrawPacMan {
public void drawPacMan(Graphics g, int x, int y, Color color) {
g.setColor(color); //set color
g.fillOval(x, y, 50, 50); //paint
g.setColor(Color.black);
g.drawOval(x, y, 50, 50); //outline
//mouth?
}
public void drawGhost(Graphics g, int x, int y, Color color) {
g.setColor(color); //color
//here goes shape
}
}
- Ich schlage vor, Sie verwenden die sprites/Bilder als Formen.
- Ja ich weiß, das ist viel besser, aber ich habe um es zu zeichnen, mich selbst.. ( gerade angefangen java so seine für das Ziel der übung ) und außerdem, dass ich nicht die Verwendung von sprites oder Bilder, aber ich weiß nicht wie..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also es gibt ein paar Dinge, die hier passieren, dass Sie benötigen, um.
1. Zeichnung-Zeichen
Werde ich nur die Adresse der Zeichnung Pacman hier.
Denken über das Pacman-Spiel, Pacman-Charakter hat zwei Staaten-der Mund geschlossen und den Mund geöffnet (in jeder Kardinal Richtung!). Dies wird wichtig, wenn wir animieren, Pacman in einem Augenblick, so dass wir erst schaffen unsere pacman-Form durch die Verwendung der
fillArc
Methode aus der Grafik-Bibliothek.Beispiel der Mund-Öffnen Pacman:
Dadurch wird pacman in der oberen linken Ecke des Fensters, mit pacman Mund nach der rechten Seite des Bildschirms. Die letzten beiden Parameter der Methode fillArc Steuerung dieser öffnung -- der 5. parameter ist der Startwinkel, und der sechste parameter ist der Winkel, um den vollen Bogen. Sie können ableiten, dass der start angle 0) ist die horizontale Linie, die vom Mittelpunkt des Kreisbogens auf der rechten Seite des Bildschirms. Erinnern Sie sich auch von der Mathematik, dass ein Kreis 360 Grad.
Anhand dieser Informationen versuchen, die Zeichnung Mund-geöffnet Pacman nach oben, unten und Links. Nachdem Sie das tun, füllen den gesamten arc zu zeichnen Pacman mit seinem Mund geschlossen. Auch andere Methoden in der Grafik-Bibliothek, die Sie verwenden können, um zu zeichnen, Ihre Geister!
2. Animieren Pacman
Für diese Aufgabe, werden Sie wahrscheinlich wollen, um zu implementieren eine Art von Thread-Struktur zu animieren Pacman, der bekommt schon ein bisschen mehr kompliziert als das, was Sie hier veranschaulicht habe. Da wir nicht wissen, dass Ihr Programm-Spezifikationen, und Sie auch noch nicht gezeigt-code in Bezug auf die animation doch, ich bin zögerlich zu legen, diese Sie weitere. Jedoch, ich erhalten Sie einige links, die auf die Frage:
Anstatt
drawOval
undfillOval
haben, sollten Sie einen Blick aufdrawArc
undfillArc
.Sehen java.das awt.Grafik.
Bezüglich der animation des Mund: Angesichts der Tatsache, dass pacman ist ständig in Bewegung, Sie kombinieren könnte pacman-position mit einer Sinus-Funktion verwenden, um eine schöne und glatte Mund-Bewegung, etwas wie dieses:
Diese Weise Pacman Mund wird automatisch führen Sie einen öffnen-schließen-Zyklus, wie er bewegt eine Entfernung von seiner eigenen Größe durch das Labyrinth. (Müssen Sie möglicherweise zu zwicken die zahlen ein wenig passend zu Ihrer Einrichtung.)
Natürlich, Sie brauchen noch einen thread für das Spiel als ganzes, aber die animation des Pacman ' s Mund getan werden kann, auch auf diesem Wege, ohne zusätzliche threads.
Ich würde raten, die Einnahme von Vorteil
Area
/Path2D
API.Haben Sie einen Blick auf Grafiken 2D
Können Sie einen Blick auf den Beispiel-code in diesem Antwort für ein Beispiel