- 老师上课讲的通过键盘来控制小球,实现了一部分,目前可以通过wsad和上下左右来进行移动.以后也许会更新.感觉做出这个离做出贪吃蛇不远了
//package wordClear;
import java.util.*;//这行目前没啥用
import java.awt.*;//这个目前也没啥用,用javax.swing代替了
import java.awt.event.*;//实现键入控制
import javax.swing.*;//用到JFrame和JPanel
public class MyBall extends JFrame
{
public static void main(String[] args)
{
JFrame F=new JFrame("MyBall");
//F.setSize(1200,800);
F.setBounds(100, 100, 800, 600);
F.setVisible(true);
F.setResizable(false);
F.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
BallPanel P=new BallPanel();
F.add(P);
F.addKeyListener(P);
P.addKeyListener(P);
}
}
//BallPanel类继承JPanel实现KeyListener接口
class BallPanel extends JPanel implements KeyListener
{
int x=50,y=20;
public void paint(Graphics G)
{
/**
**这下面这两行删了会产生一个问题,Panel实现就不会有,
**可以删去自行体会
*/
G.setColor(Color.WHITE);
G.fillRect(0, 0, 1920, 1080);
G.setColor(Color.BLACK);
G.fillOval(x, y, 30, 30);
}
public void keyPressed(KeyEvent arg0)
{
//System.out.println(arg0.getKeyCode());
//向左
if(arg0.getKeyCode()==arg0.VK_LEFT||arg0.getKeyCode()==arg0.VK_A)x-=10;
//向上
if(arg0.getKeyCode()==arg0.VK_UP||arg0.getKeyCode()==arg0.VK_W)y-=10;
//向右
if(arg0.getKeyCode()==arg0.VK_RIGHT||arg0.getKeyCode()==arg0.VK_D)x+=10;
//向下
if(arg0.getKeyCode()==arg0.VK_DOWN||arg0.getKeyCode()==arg0.VK_S)y+=10;
if(x==800)x=-30;
else if(x==-30)x=800;
if(y==600)y=-30;
else if(y==-30)y=570;
repaint();
}
public void keyReleased(KeyEvent arg0)//目前没用到,先写着,以后实现其功能
{
}
public void keyTyped(KeyEvent e)//目前没用到,先写着,以后实现其功能
{
}
}