1、“.....否则,将返回空的序号。游戏的最终运行状态如图所示。坦克的共同行为在中定义了所有坦克包括敌方坦克和玩家坦克的共同行为和属性。和都继承了该类以简化结构。在中定义了坦克四个方向分别应将原始图片旋转的角度,分别为以便在后来的中将这些常量代入。构造函数中创建了每个坦克必须拥有的颗子弹,这些子弹就将只跟随自己的坦克调动。为了能提前预测碰撞,调用了,将碰撞矩形向前设置了个象素,具体原理见第二章。在中,将根据坦克当前的方向确定子弹出膛后的方向,其中将子弹的参考点设置在其未变形状态的底部,将其放置到炮口的位置,将其图片方向转到需要使用的位置。函数将返回坦克是否能够向前前进,考虑到的因素有边界障碍物。它返回个值,提供给函数,做进步的判断。将检测传递来的象素处是什么类型的障碍物,它将象素除以即障碍物的象素宽度,取整,再通过得到。在得到障碍物属性后,判断其序号是否与草相同,或是否为空序号为。因为所有的障碍物中只有草不会阻碍坦克的向前运行......”。
2、“.....因为刚出现时就是这样的状态。当开炮时,调用的将子弹与联系起来。需要联系的还有自身坦克地图。这些都由坦克传递给子弹。因为子弹是属于坦克的,它的属性需要跟当前的坦克保持致。接着使用将子弹贴到上显示出来。最终调用其开始子弹自己的线程。子弹旦开始运行,就脱离了当前坦克的控制,直到其生命周期终止。无论子弹是属于敌人还是玩家的,它都必须记录自己的来源和攻击的对象。在玩家坦克发射的子弹中,就必须将攻击对象设置为所有的敌人。这样,它才能有扫描的目标。在的参数中,传给子弹的是敌人的数组,子弹的对象就被确定了。都是很简短的函数,但却提供必不可少的功能。他们可被外部调用,以取得生命值死亡记数重置位置。在函数,每个方向在走前都须用,检测是否可以行走。检测是否有障碍物及是否到边界。检测是否前方有坦克阻碍行动。当可以行走时,就在当前方向的坐标上增加或减少个象素。在函数中,将有个循环按照敌人数组的序号依次检测次。有点非常重要在检测前,需要将敌人的检测矩形区域设置为与原来图片样大小。否则,当玩家向上走......”。
3、“.....并且已经碰撞到玩家坦克时,玩家坦克会因为被判定已与敌人发生碰撞而不允许前进。事实上,敌人坦克此时并没有阻碍玩家前进。这样的判断必须排除在考虑范围外。当然,在设置完成后,必须将将检测区域设置回原先的状态,否则敌人在往后自己的检测中将发生。敌人坦克的功能属性由于和同属于个的继承类,其功能就与有很大的相似之处,但也有其自身的特别属性。其主要功能流程图见图。首先,继承了接口。因为敌人的运行是自动的,需要有设定的程序让它可自己控制,而不像完全通过每次输入的键盘信号来做出反映。因此,它可以运行在单独的线程中。函数与中的样,设置了攻击的对象,并且此函数将继续把参数传递给自身的子弹,以便子弹可以识别攻击对象。此函数由调用。以当前系统时间作为种子,调用了类的产生个随机的整数,此整数取除的余数的绝对值作为随机的方向。此时返回的值的范围就确定在之间,正好对应四个方向。将他们代入需要使用方向的函数中就可以使用了。的原理类似只是需要乘以每秒会刷新的屏幕的次数......”。
4、“.....每个敌人还需要拥有个内部的所有,创建个名为的数据库。随后将分别建立和以便实现多字段的记录。首先将循环调用和,将记录中的条目的用户名置为,所有的分数置为。将所得的被写入的数据流输送到的字节数组中。将被循环调用次,将记录中的个最高记录初始化。函数得到所需要序号的分数。其中,将分别读出用户名和分数,然而前者读出后并不加以利用,因为在比较分数的过程中,并不需要用到用户名。使用它只是为了将记录的指针向后推移到可以读出分数字段的位置。可以将当前刚刚得到的最高成绩记录到数据库的指定位置,将最后名排挤出局。其中,将把已读出的当前位置的记录写入到下条中,当发现移动完毕后当前序号即为所需要插入的位置时,就再次调用,,,,将记录写入。并将所有相关的的继承类用关闭,以便释放内存资源。函数绘画出当前的屏幕分数。它将所有数据库中的数据依次读出,再使用以固定的格式写出。效果如图显示。由于类继承了,所以必须有函数。在这个在刷新屏幕时被调用需要执行的方法中,设置了个整形的,用来记录完成关所用的时间......”。
5、“.....每关的分数被设置为。因此完成的时间越短,得到的分数就越高。如果成立,就不将当前关得到的分数加入到总分的计算里,否则就调用进行累加。如果通关或完全死亡后,将提示用户按按钮跳过该屏。如果需要进入下关,则进入本关统计分数的显示。效果如图,仅停留秒种,供用户快速参考后便会跳入下关的起始画面。按钮由加入,并设置了确定按键事件发生后的动作。这是低级绘图屏幕与高级用户界面相结合的个应图分数统计画面图每关的分数统计用。当用户的分数达到定的高度可以写进记录时,将调用创建个新的类的屏幕,其中包括个,允许用户输入自己的姓名,这样使用就可以将输入读出,写入到记录中。本章小结第三章中按照相应的步骤描述了所有关键类的具体算法实现,引用了相关函数进行了具体流程的解释,并对原理稍复杂的函数做了详细的分析。对游戏有关的各运行界面也做了展示。第四章总结本程序的总结和展望本程序设计实现了手机上以为平台的坦克大战游戏的开发,采用从外部文件读取地图自动控制敌人坦克运行的方式进行控制......”。
6、“.....经过了细心的调试和排错解决了绝大部分的问题。但几乎每个计算机程序都会有这样那样的不足,尤其是未经过精心维护的非商业软件。即使是作为操作系统的各种版本的也时常会发生许多类型的和漏洞。本游戏程序对于初涉此领域的毕业设计课题来说,尤其在开始初期,感觉逻辑复杂,难以控制,因此至今还有些未能解决的。目前发现的和未完善的功能列表如下与敌人对子弹的时候有时候可能会出现当敌人死后,自己若仍在原地,子弹会发不出去。敌人的人工智能变化较少,不够理想。子弹和敌人经常会与画面的刷新的线程不同步,造成画面闪烁。由于每次子弹发射和每次坦克的移动的个象素都会对所有坦克和所有子弹进行次循环检查,并由于同时开的线程比较多,使得本来运行效率就不高的运行异常缓慢。即使刷屏没有间隔也不会提高速度。最好有接宝物的设置,增强可玩性。当敌人和自己同时死亡时,仍会过关,但字样会出现,下关坦克不会出现,但可以隐身发炮。已经解决的重要当发出子弹到达边界并同时还在草丛中时会抛出数组边界异常。有时会莫名其妙的死机......”。
7、“.....对方坦克发出的子弹不能将其击毁。经验和感想坦克大战作为课程设计,是本人目前做过的最大的程序设计。虽然大学期间在下设计过个俄罗斯方块的游戏,并且经过反复的调试修改也达到了定的精确性,但接手这个题目时仍感觉十分棘手。在两年的学习中做过很多课程设计,大多规模很小。在数据库单片机各种应用软件和游戏中,我仍觉得对游戏的设计有极大的热情。因为其各个模块间的联系十分紧密,代码重复执行率高,当经过无数次的调试修改后,能最终看到成品,有无比自豪的心情。大学期间做过银行取款机图书馆管理程序等简单的数据库管理系统的课程设计,思想大致相似,变化范围有限,没有太多自己可发挥的余地。大家作品的最终结果都离不开同个模式。相比些数据库软件,游戏的设计有很多人情色彩和艺术思想的发挥,正式商业的软件的人性化界面和各个游戏间迥异的结构每每会让人有去开发的冲动。游戏程序最大限度的利用了硬件条件,因此展现出的画面往往多彩绚丽效果惊人。成功的游戏融合了三维运算人工智能音效处理等计算机多媒体的精华部分......”。
8、“.....是本人以前未曾接触过的领域。凭着探索新知识的热情,我选择了该题目。我在星期内写了字,经过了几次的修改,终于完成了现在的程序设计。原先认为不可能的事,我发现,如果有不畏困难的信心和肯钻研的勇气,就定会完成,甚至达到人的数组元素。这样,它们才可以自动检测自己是否与同伴发生了碰撞,以便采取躲避转向等行动。将检测是否与其他坦克包括敌人和玩家。个循环将依据敌人的序号查找次。语句将避免检测到自己,永远返回真。虽与上面的函数很相似,但仍有些细微不同,那就是不需要在检测前设置被检测方的矩形区域。因为不需要进行预先检测。此函数用来检测是否在刚出现时就与其他坦克发生碰撞的。如果出现,出口就被堵死,显然,不能永远不出现,那就应采取其他的办法,否则两辆坦克将因为都处在碰撞状态中而无法移出。在运行的线程中,需在每前进的步骤中循环做下列事件如果坦克已死亡,立刻退出。由值决定。如果不是刚出现由决定,判断是否与将其他坦克发生碰撞,就向当前方向前进步骤,否则......”。
9、“.....如果刚出现,就直接走步,具体如何行走将在函数中决定,并且此与中的有所区别。当随机发炮数减少到时,就进行发炮的动作。发炮后应立即重新赋值给随机发炮数,以便重新倒数计算。当所有的步骤走完后,因为需要转动方向,于是,调用次随机取得方向的函数再次获值。其他的随机值也应当重置。在函数中首先检测是否正处于碰撞状态中,如果不是,就需要取消的状态,因为不需要这样的特殊身份,让别的坦克不检测了。在运行在个方向上,当确定为时,应再检测是否为。如果是,就不应该受到其他坦克的影响而直接改变坐标,但若不是,就应当远地不动。子弹的运行和控制子弹继承了,运行在独立的线程中。它拥有个很重要的变量,。它标识了该子弹是属于玩家的,还是敌人的,这样可以控制子弹在脱离坦克管束后的运行状态中的行为。其主要功能流程图见图。,调用了,获取当前子弹击中的是什么障碍物......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。