增量式教学在高职Java Me游戏设计课程中的实践
摘要:增量式开发是一种敏捷的开发方法,在高职教学中其环环相扣,循序渐进的特征非常符合学生学习新知识的认知规律。介绍了在手机游戏设计课程中引入增量式教学的方法,并结合具体案例的实施
java手机游戏下载
过程展开深入讨论。
关键词:敏捷方法;增量式开发;Java Me游戏开发;案例教学
0 引言
高等职业教育是以就业为导向、以“应用”为主旨来构建课程与教学内容体系的,其中实践教学在教学计划中占有较大比重。实践教学的主要目的是培养学生的技术应用能力,以传授技能操作为手段,培养具有创新素质和熟练操作能力的职业型人才,充分体现了高等职业教育的特和培养目标。如何落实“以人为本”的发展理念,创新课程设计,加强学生的基本实践能力,操作技能以及综合素质的培养,
就成为高职教育者研究和关注的重点。
笔者在实践课程《手机游戏开发》的教学中发现学生面对大量而又分散的新知识往往无所适从,而增量式(也称迭代增量式)开发教学方法的应用,能够很好地克服这个困难,并取得良好的实践效果。随着每一个增量阶段的推进,学生不仅可以学习到必要的Java Me编程知识,也对一种敏捷式开发方法有了切身的体验。增量式开发的每一个阶段都会以一个可执行的版本为结束,每次前进一小步,其中所涉及的知识以及技能都相对较少,学生更容易集中注意力于当前的问题的解决,并且可以立刻在模拟器上看到游戏程序的每一个进展而获
得成就感,从而激发他们的学习兴趣,以促进学生进入下一个阶段的学习。
1 增量式开发思想
传统的瀑布式开发方法从需求分析、设计、编码、测试到最后提交,各阶段依次进行,一旦某环节出现问题,修正的代价可能非常高昂,缺乏灵活性,更不适合对某种编程技术还不熟悉的初学者。近些年来敏捷式开发思想逐渐深入人心,敏捷式开发方法有很多,其中很重要的一种就是增量式开发,开发过程包含一系列迭代,每一次迭代都在前一个的基础上完成一个增量,并可以直接运行,呈现当前开发成果;通过一步步的完善最终实现整个系统,从而提高软件开发的效
率,降低风险,使其能更好地适应变更。
2 增量式Java Me游戏开发的课程设计
高职实践课程应该以职业需求的应用技能为主,以适度的理论知
识为辅,强调实践能力,而不是系统的学科知识。
设计免费素材网增量式开发非常适合实践教学。在本游戏开发课程中,选择一个简单的飞行射击游戏作为开发案例,主要考虑到这种类型的游戏学生最为熟悉,游戏引擎中的相关算法设计简单易实现,适合初学者。本课程并不按一般教科书的章节顺序按部就班地讲解,而是围绕整个游戏程序的开发过程,把此案例划分为一系列渐进式的增量开发阶段,针对每一个阶段性目标,传授当前必要的Java Me编程知识和解
决问题的思路,引导学生学以致用,自主实现本阶段的游戏功能,帮助学
生掌握手机游戏开发的基本技能,实现教学目标。
3 具体课程实施
通过先导课程的学习,学生已经对Java Me的体系结构,开发环境和低级、高级界面开发等内容有了一定的了解,本实践课程主要培养学生Java Me中针对游戏开发API(位于java.microedition.lcdui.game 包中)的应用能力,按照增量式开发的模式,整个开发过程被划分为
如下8个阶段进行。
局部变量和静态局部变量3.1 绘制主角
知识点:GameCanvas基础和Sprite类及其提供的主要方法。要
求:在游戏画布上根据给定的坐标以及角度绘制主角。java环境变量设置验证
要点:手机游戏开发的程序架构;Sprite类中的常用方法,包括初始化,一般用图片对象对其进行初始化;旋转,图片可以进行四个角度的旋转;画布上的定位方法setPosition(x,y)以及移动move(x,y)等。
excel数组怎么表示3.2 主角自主移动
知识点:Java Me中的线程。要求:完成主角在手机屏幕左右边
框间的往返移动。
要点:游戏的运行依靠一个连续的重复的循环,这个循环可以以定时器驱动,也可以以线程驱动,本例选择线程驱动方式,游戏程序逻辑就包含在其中,是游戏开发的重点,也是后面各阶段增量开发的基础;学生需要得到主角当前所在坐标(getX(),getY()),判断其是否已经到达屏幕边框,如果触及边框则反方向运动;注意清空背景,否则主角移动的轨迹上会出现重影。
parameter is not valid
3.3 按键控制主角移动
知识点:手机键盘状态检测getKeyStates()。要求:在上一阶段的基础上修改程序,把自主移动的主角
改为方向键控制主角进行4个方
向上的移动。
要点:在线程的每一次循环中都要检测当前的按键状态,为不同的方向键定义响应动作;为避免主角移动到屏幕之外,还要判断主角当前所在位置,确保其坐标是在合理的区间之内;其运动速度可以通过更改线程的休眠时间间隔sleep(t)和主角每次移动的坐标单位数来控制。
3.4 子弹发射
本阶段没有新的知识点,主要考察学生对已学知识的灵活应用能力,使用所讲授的方法实现发射子弹的游戏功能。要求:当按下发射
键,在主角所在的位置上出现子弹并快速竖直向上移动。
要点:选择合适的子弹图片初始化Sprite对象;在主线程的循环中检测发射状态,如果检测到发射键被按下,则把代表子弹的Sprite 对象定位到主角相应的位置上(如果允许屏幕上出现多个子弹,需要多个Sprite对象);如果有子弹被发射,则在每一个循环中向上移动这个对象,实现子弹快速飞行的效果,直至子弹飞出屏幕上边框。
3.5 加入敌机
知识点:随机数Random类。要求:屏幕上方随机位置出现敌机,
向下沿着一个随机的角度移动。
要点:用敌机图片初始化相应的Sprite对象(可以有多个);以
给定范围内产生的随机数作为敌机出现时的横坐标;在主线程循环中以另一个随机数控制move(a,b)方法中的两个参数,使之按照一定的斜率移动;为避免生成过多的敌机对象,在一个敌机移动出手机屏幕之后可以让其重新定位到屏幕上边框,重复上面的过程,看上去是又一架敌机,实际上节约了系统资源。
3.6 击中目标
知识点:Sprite对象的碰撞检测。要求:若子弹与敌机接触,敌
机爆炸并消失在屏幕上。
要点:collidesWith方法的使用,注意图片的背景透明与否的区别;如果子弹对象和敌机对象的碰撞检测结果为真,即子弹击中敌机,则隐藏子弹对象或将其移出到屏幕之外,代表敌机的Sprite对象用setImage方法替换为一个爆炸效果图片显示在屏幕上,然后隐藏或移出屏幕,如果要重复使用这个对象,则需要把它用同样的方法替换回代表敌机的图片;击中敌机后加分。
3.7 主角被击中
本阶段没有新的知识点,处理逻辑与上一个阶段类似。要求:如
果敌机和主角碰撞,主角爆炸,退出游戏。
要点:在线程的每一次循环中都要检测主角是否和任一敌机碰撞,判断一旦为真,则修改主线程的循环控制变量为false,停止线程,
结束游戏。
3.8 游戏地图的绘制
知识点:TiledLayer和LayerManager。要求:为游戏绘制滚动的
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论