new GameOverThread().start();} lm.paint(getGraphics(), 0, 0);//重新绘制场景 flushGraphics(0, 0, getWidth(), getHeight()); sp.nextFrame();//英雄动化到下一帧 Thread.sleep(80);//每隔80ms英雄移动一次 }catch(Exception ex){ex.printStackTrace();}}}} 5.5 游戏结束闪屏线程 英雄综合功能线程开发完毕后,就可以开发游戏中的最后一个线程游戏结束闪屏线程了,此线程主要负责游戏结束后“GameOver”的闪屏。 将如下GameOverThread类的代码添加到MyGameCanvas的类体中: public class GameOverThread extends Thread{ public GameOverThread(){ try {//设置GameOver动画层位置 gd.getGameOver().setPosition(40, 90); //将GameOver动画层添加到场景中 lm.insert(gd.getGameOver(), 0); } catch (IOException ex) {ex.printStackTrace();}} public void run(){ while(true){//闪屏循环闪烁 try{lm.paint(getGraphics(), 0, 0);//绘制场景 flushGraphics(0, 0, getWidth(), getHeight()); Thread.sleep(500);//休息500ms gd.getGameOver().nextFrame();//闪屏动画到下一帧 }catch(Exception e){e.printStackTrace();}}}} 5.6 游戏主MIDlet 完成了游戏画布类及各个功能线程的开发后,就可以进行游戏主MIDlet的开发了。在wyf包下新建名称为GameMidlet的Midlet,并在GameMidlet类体中添加如下两个成员变量: MyGameCanvas mgc=new MyGameCanvas();//游戏画布 Display d;//显示设备 同时,在GameMidlet的startApp方法中添加如下代码: d = Display.getDisplay(this);//获取显示设备 d.setCurrent(mgc);//设置游戏画布 //启动蜘蛛随机改变方向线程 mgc.new SpiderDirectionThread().start(); mgc.new SpiderThread().start();//启动蜘蛛移动线程 mgc.new HeroThread().start();//启动英雄综合功能线程 到这里为止,就完成了本游戏所有的开发工作。这时按下开发工具界面中的 按钮即可运行游戏,见到如图1所示的游戏运行界面了。 6 程序的打包与发布 由于使用了NetBeans移动插件平台进行手机游戏的开发,打包发布的工作非常简单,只要选择“生成”菜单下的“生成主项目”选项即可。 打包发布工作完成后,读者可以打开项目文件夹下的 “dist”文件夹,就可以见到自动生成的jad与jar文件了。根据手机型号的不同,将jad与jar文件部署到手机中就可以享受游戏的乐趣了。
7 结语 通过开发文中的手机小游戏,读者应该对如何使用NetBeans移动插件开发手机2D RPG游戏有一定的了解。同时,也可以充分体会到使用NetBeans移动插件中提供的可视化游戏设计器大大简化了繁琐的游戏场景设计工作,带来了很大的方便。
|