- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
J2ME程序设计实例教程第06章 俄罗斯方块 作者 :杨光 E-mail:guang760212@ 第6章 俄罗斯方块 本章将设计一个俄罗斯方块的小游戏,学习Canvas组件的使用。 6.1 知识点 6.2 设计要求 6.3 类设计 6.4 代码实现 6.5 实践 6.1 知识点——Canvas简介 Canvas是个抽象类,为开发人员提供了一系列方法,用于处理界面显示、游戏动作、键盘事件和触摸屏事件。Canvas组件由Canvas类的子类负责创建,在子类中必须重写父类中的paint(Graphics)方法。 6.1 知识点——Canvas键盘事件 Canvas使用下面三个方法处理用户的键盘事件。 protected void keyPressed(int keyCode) protected void keyReleased(int keyCode) protected void keyRepeated(int keyCode) 在默认的情况下,这三个方法什么都不做,如果需要处理键盘事件,那么开发人员必须在子类中重写相应的方法,实现相应按键动作的处理。 6.1 知识点——Canvas触摸屏事件 Canvas使用下面三个方法处理触摸屏事件。 public void pointerPressed(int x,int y) public void pointerReleased(int x,int y) public void pointerDragged(int x,int y) 开发人员可以通过下面的方法查看当前设备是否支持触摸屏功能。 public boolean hasPointerEvents() public boolean hasPointerMotionEvents() 6.1 知识点——Canvas命令事件 Canvas组件也可以添加多个命令对象,并且为Canvas组件设置命令事件监视器。当用户触发命令按钮时,命令监视器将处理该命令。 6.1 知识点——Canvas其他方法 public String getKeyName(int keyCode) protected void showNotify() protected void hideNotify() 6.1 知识点——图形旋转 在平面直角坐标系中,坐标点(x, y)以(x0, y0)为圆心顺时针旋转θ角度后,新的坐标为(x’,y’)。x’,y’可以通过下面的公式计算。 x’ = x*cosθ- y*sinθ-x0*cosθ+y0*sinθ+x0 y’ = x*sinθ+y*cosθ-x0*sinθ-y0*cosθ+y0 6.2 设计要求 游戏设计要求: 用户通过方向键操作游戏:按左、右键可以左右移动正在下落的方块图形;按向下键可以加速方块下落;按向上键可以使正在下落的方块图形逆时针旋转90度。 游戏具有暂停功能,用户可以随时暂停方块图形下落。暂停后,还可以再开始,继续玩游戏。 游戏中,共有下面7种方块图形。 6.3 类设计 6.4 代码实现——程序打包 启动J2ME无线开发工具,新建一个项目。 将6.4.2节中的java源文件保存到新建项目的src目录中。单击开发工具的【生成】按钮,编译源文件。如果有错误,请修改源文件,保存后重新编译。 选择开发工具的菜单【项目】→【包】→【产生包】对当前项目进行打包。打包成功后,将在当前项目的bin目录下生成一个jar文件和一个jad文件。 6.4 代码实现——运行效果 6.4 代码实现 ——代码分析 参见教材P145~158 6.5 实践 请为该游戏添加计分功能。 增加游戏的难度。 随即改变方块图形的颜色。 请为游戏添加新的下落方块图形。 * * 图6-2 游戏运行效果图 *
文档评论(0)