022 MIDP2.0游戏编程

022 MIDP2.0游戏编程

ID:37599643

大小:676.50 KB

页数:16页

时间:2019-05-12

022 MIDP2.0游戏编程_第1页
022 MIDP2.0游戏编程_第2页
022 MIDP2.0游戏编程_第3页
022 MIDP2.0游戏编程_第4页
022 MIDP2.0游戏编程_第5页
资源描述:

《022 MIDP2.0游戏编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、J2ME手机游戏开发技术第七章MIDP2.0游戏开发第七章MIDP2.0游戏开发MIDP2.0游戏开发新特性MIDP2.0中对于游戏支持的功能有下面几类:FullScreen(全屏)模式的支持。透明PNG图像支持。专门为游戏开发提供的GameCanvas类,能够使用脱机屏幕缓冲区。按键状态查询。TiledLayer(图层分块)支持。Sprite(精灵)支持。第七章MIDP2.0游戏开发MIDP2.0游戏开发新特性CanvasGameCanvasLayerManagerLayerSpriteTiledLayer第七章MIDP2.0游戏开发MIDP2.0游

2、戏开发新特性GameCanvasGameCanvas相对于Canvas的增强点:1.全屏模式2.按键状态检测3.内置双缓冲第七章MIDP2.0游戏开发MIDP2.0新特性GameCanvasGameCanvas包含的方法:第七章MIDP2.0游戏开发MIDP2.0新特性GameCanvas脱屏缓冲区GameCanvas对象在创建时会创建一个脱机的屏幕,这个屏幕和显示在设备上的屏幕是分离的。作图时也只能在脱机的屏幕上作图,然后才能将脱机屏幕拷贝并显示到设备屏幕上,所以为了能够刷新屏幕,就需要在程序中启动定时器定期重绘并刷新屏幕。第七章MIDP2.0游戏开

3、发MIDP2.0新特性GameCanvas键盘事件可以利用Canvas类原有的处理按键事件的方法,也可以利用主动查询按键情况的方法来获取哪些键被按下。但是通过后一种方法只能查询到与游戏相关的按键第七章MIDP2.0游戏开发MIDP2.0新特性GameCanvas键盘事件:如果要检查特定的按键是否被按下,就需要检查将getKeyStates()返回的值与这些键值进行按位与(&)运算,并根据计算结果来判断。第七章MIDP2.0游戏开发MIDP2.0新特性GameCanvasGameCanvas示例范例见GameCanvasTest.java范例通过Game

4、Canvas派生新类MyGameCanvas,在MyGameCanvas中可以用方向键控制方块移动,用A、B、C、D键来改变方块的颜色。此外,创建一个定时器任务类MyTask,定期调用MyGameCanvas类的action方法,检查键盘按键情况和对屏幕进行重绘。最后通过MIDlet派生类处理程序的启动和退出,在程序启动时创建定时器。程序没有paint方法,因为在MIDP2.0不是必须在paint中绘图,可以把绘图的程序放在线程中。程序中也没有keyPressed方法,因为在MIDP2.0中可以把按键检测事件放在线程中处理。第七章MIDP2.0游戏开发

5、MIDP2.0新特性GameCanvasGameCanvas示例:publicvoidAction(){//判断上下左右键是否被按下……//绘制新的方块//g.setColor(curColor);g.setColor(0,0,0);g.fillRect(currentX,currentY,3,3);flushGraphics();}代码讲解前面的代码段中flushGraphics()的作用是把脱屏缓冲区的内容显示在屏幕上。第七章MIDP2.0游戏开发MIDP2.0新特性GameCanvasGameCanvas示例(按键处理):publicvoidAc

6、tion(){intkeyState=getKeyStates();//判断上下左右键是否被按下if((keyState&UP_PRESSED)!=0&¤tY>0)currentY--;if((keyState&DOWN_PRESSED)!=0&¤tY0)currentX--;if((keyState&RIGHT_PRESSED)!=0&¤tX

7、hGraphics();}第七章MIDP2.0游戏开发MIDP2.0新特性GameCanvasGameCanvas同时处理多个按键//右键跟上键同时按下的状态intkey=GameCanvas.RIGHT_PRESSED

8、GameCanvas.UP_PRESSED;if((result=keystate&key)!=0){if(result==GameCanvas.RIGHT_PRESSED)//如果只有右键被按下{System.out.println("Right");}elseif(result==GameCanvas.UP_PRESSED)//只

9、有左键被按下{System.out.println("Up");}else{System.ou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。