310 likes | 467 Views
第十章. MIDP 2.0 Game 开发入门 -II. 提问. 回顾. 通过 ( )技术,可以有效减少图片的使用数量。 一段连续的动画可以按时间分解成一幅幅图片,每幅图片都称为一个( )。 使用 Sprite 类的( )方法可以方便的实现 手机游戏中碰撞检测。. 上机任务- 1. 实现一个公鸡快跑的动画效果,具体要求如下: 程序启动后,在屏幕上显示一只不断奔跑的公鸡。 公鸡从屏幕的左侧开始奔跑,移出屏幕右侧边缘后又重新在左侧出现,然后继续奔跑,循环往复。. 上机任务- 2. 上机任务- 3.
E N D
第十章 MIDP 2.0 Game开发入门-II
提问 回顾 • 通过( )技术,可以有效减少图片的使用数量。 • 一段连续的动画可以按时间分解成一幅幅图片,每幅图片都称为一个( )。 • 使用Sprite类的( )方法可以方便的实现 手机游戏中碰撞检测。
上机任务-1 • 实现一个公鸡快跑的动画效果,具体要求如下: • 程序启动后,在屏幕上显示一只不断奔跑的公鸡。 • 公鸡从屏幕的左侧开始奔跑,移出屏幕右侧边缘后又重新在左侧出现,然后继续奔跑,循环往复。
上机任务-3 • 实现一个导弹打飞行器的小游戏,具体要求如下: • 屏幕底部显示一个飞行器,玩家可以按下“←、→”键控制飞机在水平方向上进行移动
上机任务-3 • 从屏幕顶部向下发射一枚导弹,如果导弹击中屏幕下方的飞行器,显示游戏结束提示界面,玩家执行“确定”命令退出程序;如果未击中飞行器,则在屏幕底部消失,屏幕顶部重新发射一枚导弹。
训练技能点 • 学习创建Sprite精灵类 • 利用Sprite类实现图片变换 • 熟悉继承GameCanvas类的游戏主界面实现框架 • 掌握Sprite类的碰撞检测功能
任务1 • 任务说明 • 实现公鸡快跑的动画效果
任务1 • 掌握要点 • 创建Sprite精灵类的方法 • 利用Sprite类实现图像翻转
任务1 • 建立名为CockRunPrj的MIDlet项目,并在src源文件夹下创建继承GameCanvas的CockRunGameCanvas画布类,且使其实现Runnable接口
导入图片素材文件: 任务1
任务1 • 修改CockRunGameCanvas类,在其中添加以下成员: • bgImg:Image类型属性,保存背景图片对象 • bgImgX:int类型属性,背景图片的横坐标 • bgImgY:int类型属性,背景图片的纵坐标 • 在构造方法中对以上属性进行初始化,然后继续添加paint方法定义,将背景图片绘制到屏幕上。
在src文件夹下创建CockRunMIDlet类,在其中添加CockRunGameCanvas类型的属性crgc,并在程序启动时将crgc对象设置为当前屏幕 任务1
修改CockRunGameCanvas类,添加属性定义: cockImg:Image类型属性,保存公鸡图片信息 cockSp:Sprite类型属性,保存公鸡图片中的帧动作 cockSpX:int类型属性,保存公鸡精灵的当前横坐标 cockSpY:int类型属性,保存公鸡精灵的当前纵坐标 在构造方法中对以上属性进行初始化。修改paint方法,在屏幕上绘制公鸡精灵图层。 任务1
任务2 • 任务说明 • 实现一个导弹打飞行器的小游戏
任务2 • 掌握要点 • 熟悉继承GameCanvas类的游戏主界面实现框架 • Sprite类的碰撞检测
任务2 新建BombGamePrj MIDlet Project,在src源文件夹下创建BombGameMIDlet类
任务2 创建游戏的主界面类BombGameCanvas,该类继承了GameCanvas抽象类,并实现了Runnable接口
导入图片素材文件: 任务2
任务2 修改BombGameCanvas类的代码,添加属性定义: planeImg:Image类型属性,用于保存飞行器图片信息 planeSp:Sprite类型属性,飞行器精灵图层对象 planeSpX:int类型属性,代表飞行器精灵图层的当前横坐标 planeSpY:int类型属性,代表飞行器精灵图层的当前纵坐标
任务2 修改BombGameMIDlet类,添加BombGameCanvas类型的属性bgc,并在程序启动时将bgc对象设置为当前屏幕
任务2 修改BombGameCanvas类,在input方法和logic方法中添加以下代码:
任务2 修改BombGameCanvas类,添加如下属性定义 bombImg:Image类型的属性,保存导弹图片信息 bombSp:Sprite类型的属性,代表导弹精灵图层 bombSpX:int类型的属性,代表导弹精灵的当前横坐标 bombSpY:int类型的属性,代表导弹精灵的当前纵坐标 random:Random类型的属性,用于随机生成导弹精灵的横坐标
任务2 修改BombGameCanvas类的代码,为其添加一个布尔类型的属性isBombThreadRun,用来判断控制导弹精灵运动的线程是否正在运行,同时在构造方法中创建并启动一个控制导弹精灵运动的线程对象
任务1 步骤九:修改BombGameCanvas类,添加下面的属性定义: alert:Alert类型的属性,代表信息提示界面 exitCmd:Command类型的属性,代表退出命令 在BombGameCanvas类的构造方法中对以上两个属性进行初始化
任务1 在控制导弹精灵运动线程对象的run方法中加入像素级碰撞检测代码
总结 本次上机总结