Jak zrobić prostokąt poruszający się po ekranie za pomocą powiązań klawiszy?
Gra, którą próbuję stworzyć, to wąż i jak dotąd odkryłem, jak używaćpaint(Graphics g)
trochęJPanel
, słuchacz myszy, a teraz próbuję utworzyć prostokąt, który przesunie się po ekranie i użyje powiązań z kluczami lub słuchacza kluczy, ale nie mam pojęcia, jak mam to zrobić.
Oto mój kod do tej pory, ma 2 części. Pierwsza część nazywa sięsnake2
ponieważ jeśli nie wiem, co robię, robię ten sam program z różnymi rzeczami.Snake
używana ramka, aleSnake2
używaJPanel
(wygląda lepiej…)
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);
}
}
Druga część to:
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 ( );
}
}