Wie mache ich ein Rechteck über den Bildschirm bewegt mit key bindings?
Dem Spiel, das ich versuche zu erstellen ist snake und ich habe bisher herausgefunden, wie es zu verwenden paint(Graphics g)
ein bisschen JPanel
-, Maus-listener und jetzt versuche ich, um ein Rechteck zu erstellen, wird auf dem Bildschirm bewegen, und verwenden Sie die Tastaturbelegung oder key-listener, aber ich habe keine Ahnung, wie ich gehen sollte, über diese.
Hier ist mein code bisher, es hat 2 Teile.
Der erste Teil heißt snake2
weil wenn ich nicht weiß, was ich Tue, mache ich das gleiche Programm mit verschiedenen Dingen. Snake
verwendet Rahmen, aber Snake2
verwendet JPanel
(sieht besser aus...)
import java.awt.*;
//required for MouseListener
import java.awt.event.*;
//requied for Graohics
import java.applet.*;
import javax.swing.*;
public class Snake2 extends JPanel
{
private Rectangle sampleObject;
public Snake2()
{
addMouseListener(new MouseListener());
}
/* create background */
public void paint (Graphics g)
{
Font angel = new Font("Angelic War", Font.BOLD, 60);
Font ith = new Font("Ithornît", Font.BOLD, 78);
setBackground(Color.darkGray);
g.setColor(Color.darkGray);
g.fillRect(0,0,700,850);
g.setColor(Color.gray);
g.fillRect(50,150,600,650);
g.setColor(Color.white);
g.drawRect(50,150,600,650);
g.drawString("Quit",52,116);
g.drawRect(50,100,30,20);
//g.setFont(angel);
//g.drawString("SNAKE",300,70);
g.setFont(ith);
g.drawString("SNAKE",280,90);
}
public void sprite (int x, int y, Graphics g){
g.setColor(Color.white);
g.fillRect(300,200,10,10);
}
public void start (int x, int y, Graphics g){
g.setColor(Color.white);
g.drawString("START GAME",300,425);
}
}
/* Tracks where mouse is clicked */
class MouseListener extends MouseAdapter
{
public void mouseReleased(MouseEvent me)
{
if (me.getX() >= 50 && me.getX() <= 80 && me.getY() >= 100 && me.getY() <= 120)
{
System.exit(0);
}
String str="Mouse Released at "+me.getX()+","+me.getY();
System.out.println(str);
}
}
Und der zweite Teil ist:
import javax.swing.JFrame;
import java.awt.Dimension;
public class SnakeDisplay
{
public static void main ( String [ ] arguments )
{
JFrame frame = new JFrame ( "Snake" );
Snake2 panel = new Snake2 ( );
frame.setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
frame.add ( panel );
frame.setContentPane ( panel );
frame.setPreferredSize ( new Dimension ( 700, 850 ) );
//frame.setLocationRelativeTo ( null );
frame.setVisible ( true );
frame.pack ( );
}
}
Was genau Fragen Sie? Wie eine Schleife über einige Spiel-Logik, so dass die Schlange bewegt?
Sehen Sie, wenn Sie Performing Custom Painting tutorial beantwortet Ihre Fragen.
Diese Frage hat Potenzial, wenn Sie es umformulieren, um genauer zu sein, aber jetzt ist es in Gefahr, geschlossen. Ich denke, es könnte wiederhergestellt werden, wenn.
Sehen Sie, wenn Sie Performing Custom Painting tutorial beantwortet Ihre Fragen.
Diese Frage hat Potenzial, wenn Sie es umformulieren, um genauer zu sein, aber jetzt ist es in Gefahr, geschlossen. Ich denke, es könnte wiederhergestellt werden, wenn.
InformationsquelleAutor user3146998 | 2013-12-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
paintComponent
in IhremJPanel
- und call -super.paintComponent(g)
.KeyListener
pack()
dannsetVisible()
Action
. Dann, in Ihren Handlungen, erhöhen Sie Ihre x-oder y und repaintVersuchen Sie dieses Beispiel ausführen
Hier ist der code, den Sie sind mehr besorgt mit
Eine benutzerdefinierte Aktion erstellen, und fügen Sie die Aktion der action-Karte, mit der Eingabe verknüpft Karte Tastendruck. In der Aktion, einfach Inkrementieren oder Dekrementieren der x und/oder y, je nach der Richtung, dann streichen Sie das panel.
Sehen Key binding tutorial | Grafik-tutorial
Ich habe gerade CamStudio auf dem Bildschirm erfassen-video, dann importieren Sie die avi in photoshop-und für web speichern als gif
danke, es ist eine schöne Technik
+1 Beispiel, beachten Sie vergessen haben zu erwähnen oder zu setzen, für JComponent zu InputMap
tut malen, schreiben, malen-Komponente? weil immer wenn ich die beiden paint-Komponente ist nicht sichtbar
InformationsquelleAutor Paul Samsotha