java小球挡板游戏_多线程的一个小球游戏,就是以前的那个Pong游戏

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

}

}

public class PongApplet extends JApplet implements KeyListener

{

private Ball ball;

private Paddle pad;

public void init()

{

setBackground(Color.white);

addKeyListener(this);

ball=new Ball(this);

pad=new Paddle(this);

ball.start();

requestFocus();

}

public void paint(Graphics g)

{

g.setColor(getBackground());

g.fillRect(0,0,getWidth(),getHeight());

g.setColor(Color.blue);

g.fillOval(ball.getX(),ball.getY(),ball.SIZE,ball.SIZE);

pad.resetLocation();

g.setColor(Color.red);

g.fillRect(pad.getX(),pad.getY(),Paddle.WIDTH,Paddle.HEIGHT);

}

public boolean ballHitsPaddle()

{

return ball.getX()+Ball.SIZE>=pad.getX()&&ball.getY()>=pad.getY()&&ball.getY()<=pad.getY()+Paddle.HEIGHT;

}

public void keyPressed(KeyEvent e)

{

int keyCode=e.getKeyCode();

if(keyCode==KeyEvent.VK_UP)

pad.moveUp();

else if(keyCode==KeyEvent.VK_DOWN)

pad.moveDown();

}

public void keyTyped(KeyEvent e) {}

public void keyReleased(KeyEvent e) {}

}

这个是我写的一个Pong游戏,就是一个小球在一个矩形框里滚动,左面有一个挡板,键盘上下键控制挡板的上下移动,Ball类是一个多线程,可是当运行的时候,无论怎么按键盘上下键的时候,挡板都没有移动,有时候当把屏幕变大在变小后可能会在按下上下键的时候挡板移动,可是并不总是成功,当成功的时候关闭窗口的时候会出现下面的异常:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component

argument pData

at sun.awt.windows.Win32SurfaceData.initOps(Native Method)

at sun.awt.windows.Win32SurfaceData.(Win32SurfaceData.java:448)

at sun.awt.windows.Win32SurfaceData.createData(Win32SurfaceData.java:316

)

at sun.awt.Win32GraphicsConfig.createSurfaceData(Win32GraphicsConfig.jav

a:357)

at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java

:332)

at sun.awt.windows.WComponentPeer.replaceSurfaceData(WComponentPeer.java

:313)

at sun.awt.windows.WComponentPeer$2.run(WComponentPeer.java:353)

at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh

read.java:242)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre

ad.java:163)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

请高手们解释一下这是为什么?还有怎么解决这个问题?多谢了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值