十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
上面的class文件为游戏的主体代码,继承SurfaceView这个类并且实现SurfaceHolder的回调方法,简单一点说就是根据游戏需要画图并显示到屏幕。
创新互联主营君山网站建设的网络公司,主营网站建设方案,app开发定制,君山h5成都微信小程序搭建,君山网站营销推广欢迎君山等地区企业咨询
public void handleMessage(Message m) {}应该是一个接受消息的方法
里面的判断都是根据你下面定义的静态常量的状态来匹配的,下面那个class PlaneGame类定义了一些静态常量。
class KeyGameEvent 类主要是控制触屏或者说按键的
估计这个代码不全,按照提示应该可以这样解决:
在Hoofan的类中加上以下代码:
private static final long serialVersionUID = 1L;
@Override
public void mouseDragged(MouseEvent e)
{
// TODO Auto-generated method stub
}
@Override
public void mouseMoved(MouseEvent e)
{
// TODO Auto-generated method stub
}
我认为异常是由多线程造成的,异常信息也很清楚,component的子组件下标越界。原因是你的子弹啊什么的都是label,然后你不断的在多线程的情况下添组件,删组件,使得游戏面板上的组件数量不一致。但是很不好意思,我没办法改正确,我尝试给paint加了锁,在remove后面按照api讲的填了validate方法,结果还是会错。我现在只能给一点建议,我感觉代码中对repaint的调用很乱,到处都是,其实应该是没必要的吧,你可以把要执行的游戏逻辑都完成了,再一起重绘。你也看到了,出错的就是在paint中,所以不知道是不是这个问题。当然,这些逻辑只有你自己最清楚,我一时半会儿是不可能搞明白的,所以这重构工作么还得你自己来。
public class Plane{
public static void main(String[] args){
System.out.print("飞机正在起飞.请稍后......");
System.out.print("情况紧急,飞机没油了,请加油.......");
System.out.print("你的飞机坠落了,大战结束.......");
}
}