当前位置:文档之家› JME的Java游戏坦克大战的开发毕业设计方案论文

JME的Java游戏坦克大战的开发毕业设计方案论文

JME的Java游戏坦克大战的开发毕业设计方案论文
JME的Java游戏坦克大战的开发毕业设计方案论文

西南交通大学

Java游戏编程技术课程设计报告

坦克大战游戏编程课程设计报告年级: 2008级

学号:20082961

姓名: 陈锦添

专业: 信息管理与信息系统

二零一零年六月

摘要

Java良好的跨平台特性在移动平台的开发中显示出了巨大的威力。Java语言面向对象的优势也使得开发游戏变得非常容易。

随着手机的日益普及、Java功能在移动设备上的实现,Java应用程序产生的手机增值服务逐渐体现出其影响力,对丰富人们的生活内容、提供快捷的资讯起着不可忽视的作用。本论文着眼于J2ME技术的应用,开发一款可商用的手机游戏程序——坦克大战。本程序的界面和运作方式继承于日本任天堂公司在20世纪80年代开发的Battle City游戏,将老少皆宜的经典作品移植到手机上来,为更流行的硬件平台提供应用软件。

本论文介绍了任天堂红白机的软硬件特性、J2ME的相关技术及本程序的结构分析和具体功能的实现。

[关键字]:J2ME,手机游戏,Java,坦克大战

手机中将Java语言引入,作为一种通用的开发标准,并将向市场推广普及仅仅短短几年,J2ME仍是一种新型的技术,中文资料除台湾出版过相关书籍外,国内相关介绍资源很有限,国内J2ME开发商也屈指可数,名声较响的Digital-Red公司也仅成立于1999年。本文可算是对新技术的一些尝试,代表对无线平台应用程序推广的一些努力。

目录

摘要-I-

Abstract- I -

第一章程序结构、思想和相关技术- 2 -

1.1 本程序需解决的有关技术问题- 2 -

1.2 程序流程- 3 -

1.3 绘图与MIDP

2.0新增的GameCanvas包- 5 -

1.3.1 提供低级绘制的Canvas类- 5 -

1.3.2 Graphics类- 5 -

1.3.3 PNG格式- 5 -

1.3.4 Game包中的新功能- 5 -

第二章游戏的设计思路- 7 -

2.1 坦克的控制和敌方的智能运行- 7 -

2.2 子弹的运行和控制- 8 -

2.3 RMS数据库系统- 8 -

2.4 内存使用的最佳化- 10 -

2.5 混淆器(Obfuscator)的使用- 10 -

第三章程序分析和具体实现- 11 -

3.1 游戏进入前的选择- 11 -

3.2 主游戏逻辑及其涉及到的若干类- 12 -

3.3 坦克的共同行为- 14 -

3.4 玩家坦克的功能属性- 14 -

3.5 敌人坦克的功能属性- 15 -

3.6 子弹的运行和控制- 17 -

3.7 记分系统- 18 -

3.8 本章小结:- 19 -

第四章总结- 20 -

4.1 本程序的总结和展望- 20 -

4.2 经验和感想- 20 -

参考文献- 21 -

第一章程序结构、思想和相关技术

1.1 本程序需解决的有关技术问题

1. 游戏程序是一项精度要求很高的程序系统,因为其代码利用率很高。一个实时运行的最终作品,每秒都会运行成千上万行程序,绘图事件、键盘事件都会以极高的频率在后台等待响应,若有丝毫的差别都将很容易导致程序在运行不久后可能出现严重错误,甚至死循环。因此,其逻辑设计应当相当严谨,需将所有可能发生的事件及意外情况考虑在设计中。

2. 游戏中为了美观,适用性强,可能需要采用外部文件引入的图片贴图,有关贴图,在MIDP2.0中提供了用于增强游戏功能的game包,使得解决静态或动态、画面背景、屏幕刷新的双缓冲等都有较好的解决方案。

3. 己方坦克的运行可以通过键盘响应事件控制,但敌方则因为是自动运行,就需要有一定其一定的智能性;同时,出现在屏幕上的敌方可能会有较多的数量,这需要为每个敌方开辟一个线程以便能让其独立运行。Java的多线程能力为实现这样的游戏提供了可能。敌人坦克的运行算法也需要进行适当的设置,以免游戏过于简单,单调。

4. 对于双方坦克发出的子弹的控制也需要对其跟踪控制,子弹也需要处在独立的线程中。敌方子弹仅需要扫描用户坦克,而用户坦克需要在每一步扫描所有的敌方坦克。这需要对所有的对象有较好的控制。另外,子弹在运行过程中也需要实时扫描是否碰撞到了相关障碍物或屏幕边界。如此过多的线程同时在本来效率就不高的KVM虚拟机上运行,也许会导致程序的缓慢。

5. 双方的坦克在前进时也需要考虑到是否碰撞到相关物体或对方坦克,以免重叠运行,造成许多物理上不可能的情况,缺乏真实感。每一次刷新页面、每前进一步都需要将所有的周围环境都进行扫描。

6. 游戏的结束、开始、动态信息画面作为构成一个完美程序都是必不可少的重要部分。良好的用户界面更是吸引用户的硬指标,相关的美术构图也需要有一定的考虑。

7. 游戏的地图不可能通过绘图来解决。否则,不仅难于控制和处理过多的元素,也会因过多的大型图片而不能限制程序的大小,失去手机上程序的原则和Java的优势。同时,地图关卡不宜保存在手机有限的内存中,而最好采取外部文件的读入读出方法。

8. 用户运行游戏时需要有分数记录的可能。如何采用合理的记分标准,需要进行适当的设计。记录分数的存储方式也需要有较好的解决方案。手机中

由于处理器和内存空间、存储空间都十分有限,其数据库系统与普通PC大相径庭。其数据库结构较为简单,被称之为RMS系统。

9. Java是基于虚拟机的半解释型编译系统,其执行效率较C++等完全编译后的程序会低很多,程序如果不进行精简和优化,将可能导致运行的不流畅。除开发过程中对结构上的控制、变量的使用、算法的优化等优化外,还可以使用混淆器(Obfuscator)进行程序打包后的优化。

以上相关技术细节和整体流程将分别在以下小节阐述。

1.2 程序流程

MIDlet suite是MIDP应用程序的最小单位,JAM负责将手机内的MIDlet suite以图形化的方式呈现,让用户能够选取欲执行的MIDlet suite,一旦选取了某个MIDlet suite,操作系统就会激活KVM执行里面的MIDlet。MIDlet 及相关的支持类组成了MIDP应用程序的实际内容。

每个MIDlet都必须继承javax.microedition.midlet.MIDlet这个抽象类。在MIDP规格中定义了MIDlet的生命周期,以及可以存在的三种状态,包括Paused、Active以及Destroyed,每一个MIDlet在任何时刻只可能处于其中的一个状态。这三种状态的转换关系如图所示:

图1-1 MIDlet的流程

本程序采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。运行程序后允许用户选择执行选项菜单,在开始游戏后将先从外部文件载入地图文件,对背景的所有物体进行绘图。在主程序运行的线程中,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。用户控制的坦克运行在主线程中,随屏幕刷新的频率而步进。敌方坦克将在游戏开始时逐渐新增线程,每增加一个敌方对象就新增加一条线程,一旦线程数满到最大值(本程序暂设置为6),就不允许敌人再继续出现。用户坦克自诞生之时起将拥有一发子弹,子弹虽然开在单独的线程中,但运行结束后(比如撞到相关物体或敌方坦克时)并不结束子弹对象,只是将其线程终止。用户再次发射子弹时只是将终止的线程再次激活。在屏幕重绘的主程序中,将

在每次的循环中判断若干事件。如:用户坦克的生命是否已完全用尽,敌方坦克数是否已经为零,屏幕上的坦克数量是否少

于仍剩下的坦克数量等。以便程序进入相关的

分支执行相关的反应代码,结束游戏或统计分

数等。主程序流程如图3-2所示:

程序为需要完成独立功能的需显示的模块

设置了单独的类。TankMain类是继承自

MIDlet的控制主程序启动的首先被载入系统的

部分。载入程序后首先启动的是程序介绍的信

息画面。闪过后载入StartChoice类,为用户

提供可选择的选项。在选择开始后,将运行

BattleCanvas类中的总流程控制。它决定了游

戏何时该结束,何时分配敌人数量,GameOver

字样的闪现规则,地图的绘制及整个游戏的调

度。

图1-3是程序中类之间的UML分析图。敌

方坦克与用户坦克的相关功能和具体行为分别

图1-3 与主程序相关的类的UML视图表

图1-2 本程序的主流程图

定义在EnemySprite和UserSprite类中,它们都继承自TankSprite公共类,以简化程序的代码、理清结构。

在每关的结束或死亡后都将载入ScoreScreen类,统计当前的分数。如果已死亡或完成所有的关数,程序将用户所得的分数记载到RMS数据库中,进行永久性保存。载入过程中将对所得分数与以往历史比较,放置到合适的位置中,形成排序。

1.3 绘图与MIDP

2.0新增的GameCanvas包

1.3.1 提供低级绘制的Canvas类

为了能有程序开发人员控制接口的外观和行为,需要使用大量的初级用户接口类,尤其在游戏程序中,几乎完全依赖的就是Canvas抽象类进行绘图。从程序开发的观点看,Canvas类可与高级Screen类交互,程序可在需要时在Canvas中掺入高级类的组件。Canvas提供了键盘事件、指点杆事件(如果设备支持),并定义了允许将键盘按键映射为游戏控制键的函数。键盘事件由键代码指定,但这样控制游戏会导致缺乏通用性,并不是每个设备的键盘布局都适合游戏的操作。应当将键代码转换为游戏键的代码,以便硬件开发商能定义他们自己的游戏键布局。本程序中,操纵用户坦克运行的按键都定义为游戏控制键,这样便能适应所有的机器。

1.3.2 Graphics类

Graphics类提供了简单的2D绘图功能。它具有24位深度色彩的绘制能力,以三原色分别各占一个字节表示其颜色。程序只能在paint()函数中使用Graphics绘制,GameCanvas可调用getGraphics()函数直接绘制在缓冲区上,可以在任何时间请求传输到前台。其对象会被传给Canvas的paint()函数,以便最终显示。

1.3.3 PNG格式

PNG(Portable Network Graphics)格式是MIDlet唯一支持的图象格式,PNG具体格式由PNG Specification,Version 1.0定义的。PNG格式提供透明背景的图象,这对绘制游戏画面和被操纵主角极有帮助。坦克之间或与障碍物碰撞时就不会因为背景有特定的颜色,显示出的效果像贴上的图片而缺乏真实感,物体之间轻微重叠时最上层图片也不会覆盖超过其有效象素外的部分。

PNG格式图片中包含许多定义其图片特性的冗余部分(Chunks)。这些代码包含在每一个单独的png格式图象中,然而如果将多个png图象合并在一张幅面稍大一些的整图中,多个chunks就可以得到精简,图片的大小可以得到控制。使用Image类中的createImage函数可从整图中分割出所需要的元素。在Game包中的TiledLayer和Sprite类都整合了这样的功能。本程序中的地图元素都集成在一张tile.png图片中,实现了方便的管理和程序体积的精简。

1.3.4 Game包中的新功能

MIDP自2.0以后新增了Game包,为游戏的开发带来了极大的便利。地图绘制、主角的动态显示、按键的检测、图层的控制等游戏专属的特性都得到了在

移动设备上最大的发挥。

LayerManager(以下简称LM)提供控制整体画面层的控制。它包括了一系列自动获取了代号和位置的层,简化了各层加入游戏画面的过程,提供了自动排序和绘制的能力。

LM存储了一个层的列表,新的层可以用append函数附加、删除和插入。层的序号相当于坐标的Z轴,0层表示最接近用户视觉,层数越高,离用户越远。层号总是连续的,即使有中间的层被移除,其他层的序号会作相应的调整以保持整体的完整性。LM中的View Window控制着与LM相对坐标的可视区域。改变View Window的位置可以制造出滚动屏幕的效果。

本程序中所有的地图、坦克都采用LM控制,敌方坦克的生成由附加一个EnemySprite对象得到。唯有界面右侧的计分栏由Graphics类绘制。

Sprite类是继承自Layer的用于存储多桢的基本可视元素。不同的frame 可交相显示,构成动态的效果。图片可翻转、颠倒、由一个主角图片就可以方便的得到所有方向的显示状态,相比原先只能使用Canvas绘图,需要将所有方向的主角图象都绘制在png图象中简化了许多。Sprite也可以从整合的图象中读图,读图时将把大图分解为若干等宽等高的小图。每个小图按照其排列顺序有相应的序号,在程序中调用其序号,就可以绘制出相应的图片。本程序中的双方坦克、子弹都由Sprite继承得到。在有些情况下,控制主角的翻转,尤其是多幅图片配合显示的过程,如果将多图的共享定位点设置在通常的左上角,将很不容易控制,因为许多翻转都是以其他点为参考电的(比如,中心点)。由此,引入参考点的概念。参考点由defineReferencePixel函数确定未翻转图片状态时的坐标。默认是(0,0)点,如果需要,可将参考点设置在画面边界之外。本程序中的坦克的参考点定义在图片正中,以便简便的实现转向等功能。子弹的参考点设置在子弹底部的中心,因为子弹一出炮筒的时候紧挨着坦克的象素就是其底部中心。

TiledLayer是有一组图象格元素(grid of cells)组成的整块虚拟图象。该类使不需要高分辨率的图象就能创建大幅图面成为可能。这项技术通常应用在2D游戏平台的滚动背景的绘图。一块整图可被分割成等大小的图象格,每块格有其对应的序号,按照行列递增。多块格可由大块同时替换组合而模拟动态的背景,这不需要逐块替换所有的静态图象格而显得非常方便。

本程序中的地图即为游戏背景。每块障碍物都有其响应的代号,其中,用户需保护的总部因为体积稍大,使用了四块图象格显示。地图背景分为20*22个图象格,每个格使用一个字节表示其中的障碍物,图象文件存储在外部文件中,以16进制的整数串表示,因此每个地图的大小为固定的440字节。如果整块地图均由绘图产生,将导致体积迅速增加,且对坦克与障碍物的碰撞也难以检测。J2ME中并没有J2SE中的File类,获取外部文件的手段很有限,仅仅在Class类中提供了一个getResourceAsStream函数,将外部文件获取为输入

流,再由InputStream的继承类读出。

第二章游戏的设计思路

2.1坦克的控制和敌方的智能运行

GameCanvas中提供了与以往MIDP1.0不同的键盘采样功能。Canvas类中采取响应键盘事件的方法,每次执行周期时会读取keyPressed函数中需执行的代码。这样的机制并不适合某些游戏场合。在某些不支持keyRepeat功能的设备上,反复执行的按键,比如发射子弹,将不能因为长时间按压而自动重复,这样就需要用户高频率的手动击键,这在操纵空间非常有限的移动设备上是非常困难的。同时,事件的执行周期也并不一定适合游戏的场合,也许需要更高频率执行的按键却只能在指定的周期内规律的响应。对此,针对游戏的开发,Game包提供的键盘状态功能将显得十分有效。

GameCanvas提供getKeyStates函数可获取当前键盘上的信息。将以位的形式返回键盘上所有键的按与释放的状态,当bit为1时,键就是被按下的状态,为0时则为释放状态。只需要此一个函数的返回值就可以返回所有键的状态。这保证了快速的按键和释放也会被循环所捕捉。同时,这样的机制也可检测到几个键同时按下的状态,从而提供斜向运行等相应功能。

敌方按照规则不能和用户坦克重合,则它每行走一步就需要把用户坦克扫描一次,判断其是否碰撞到了用户的坦克。Sprite类中提供了collidesWith 函数,用于判断是否与某个TiledLayer、Sprite、Image的对象有图象上的重合(即游戏中的碰撞)。然而不能仅仅将用户坦克作为其Sprite参数传递给敌人的类进行判断。因为如果发生碰撞,collidesWith成立,则两辆坦克已经发生了图象重合,违反了规则,甚至若再进行collidesWith判断的话,其结果将永为真。为了提前预知碰撞,可以将所有坦克的碰撞范围设定为一个比坦克图片稍大一些的矩形,此矩形仅在坦克前方比坦克图形多出一个象素。在多出的11个象素中,按照每个象素依次检查此象素是否于外界发生碰撞,如果不是按照象素检查,则当坦克与障碍物错位并同时与两种物体接触时将有可能忽略检测其中的一样物体。这样,就可以提前一步判断。如果发生碰撞,则坦克应当选择掉转方向,此时,两辆碰撞的坦克又因为其矩形区域不重合而不符合collidesWith的条件,就可以继续正常运行了。

敌方坦克由于需要具有一定的智能性,以便对玩家攻击,使之具有一定的可玩性。敌人可以自动行走,但是应当在以下适当的情况下转向:首先是是否超出界面的边界,其次是是否与地图障碍物发生了碰撞,再次是是否与用户坦克发生了碰撞。需要指出的是,当发生阻碍不能在不变方向的情况下继续行走

时,并不一定立即需要采取转向的对策。如果一定发生转向,试想,当敌方碰到玩家时,如果它立即转向,将不会对玩家发射射向他的子弹,就不构成任何威胁,当然,也不能永远不转向。本程序设置为:当碰撞到障碍物或边界时立即转向,但碰到玩家坦克时需要有一个等待的时间,这个时间由碰撞前随机取得的在某方向上的持续行走步数决定,当发生坦克间碰撞时,此随机数将在下一次循环前减少为原来的2/3,这样就实现了加快转向的时间,避免死锁在一个方向上静止的停留过长的时间。另外,坦克的发炮间隔和转后的具体方向都由随机数决定。坦克之间由以上道理也不会发生重叠,但当某坦克正从上方生成而正巧有另一辆阻碍在其生成点处,这将导致不可避免的重合。这是允许的,但需要对他们标注状态,即当坦克刚出现时暂时允许重合,一旦在某个时间他们脱离了重合状态,就不能在允许重合,如果不设置这样的判断,刚出现的坦克将会因为受到阻塞而永远不能前进,坦克将混成一团。本程序中并未使用过多复杂的人工智能算法,如有时间,将可能再此方面加以完善。

2.2 子弹的运行和控制

每一个坦克都有他自己的一颗子弹,这颗子弹在任何一辆坦克被构造时就一直存在,直至此坦克生命的结束,子弹的再次只是将屏幕上暂时掩盖的图象重新置于坦克炮筒才恰当位置,并使其显示出来,这与现实中每个子弹都是单独的个体有所不同。

子弹所需要完成的任务有:

它是一个继承了Runnable虚类的可运行单独线程的对象。在其出现在屏幕上的运行周期中,每一步都需要循环检测以下条件:

是否与某坦克发生了碰撞,即击中了这辆坦克。子弹使用的是象素级的碰撞检测,因为子弹的图片形状不规则,如果使用矩形碰撞检测,将有可能在子弹尚未接触到物体时就已返回碰撞的真值。分为两种情况,如果此子弹来自于敌方,将只检测玩家坦克,因为敌方之间的子弹必须允许可以透明的穿过,以保证不会在敌人之间发生子弹的消减。如果来自玩家,则每一步需扫描所有的敌方坦克,检查是否发生碰撞,这可能会花费不少的CPU时间。

其次,子弹之间需要检测是否碰撞。敌人之间显然,如上已经提过,不需要检测,但敌人与玩家之间应当可以互相消除子弹,以便在狭窄的路口中仍有存活的机会。玩家的子弹需要在每一步检测所有敌人的子弹的运行状态。这样较多的运算也将不可避免的耗费大量CPU时间。

子弹对不同障碍物将有不同的反映。对砖墙将有能力将其击毁,使之在画面上消失;对水泥钢筋将不能发生作用,子弹也不能通过;对于河流,坦克不可以通过,但子弹可以;对于草丛,子弹和坦克都可以通过。

2.3RMS数据库系统

MIDP为MIDlets提供了一种永久存储和后来读出数据的数据库解决方案,被称为Record Managerment System(RMS),是一种类简单的基于记录的数据

APP游戏设计毕业设计(论文)

超神学院毕业生 毕业设计 题目: APP游戏设计 分院:通讯与信息 姓名: Loading 学号: 000 专业: LOL 指导老师:提莫 毕业论文答辩时间: 2014.6.9

本课题APP游戏设计,通过该课题,将红军长征的经过、抗战历史、红色文化、历史背景等内涵完完全全的演绎展示,让人们轻松而清晰地了解红色文化。采用的开发工具是Photoshop、Adobe Illustartor、Venture Capital。随着科技的发展,现在手机的功能也越来越多,越来越强大,未来几年,手机游戏必将深入人心,渗透人们生活的点点滴滴。 关键词:APP游戏设计,Photoshop、Adobe Illustartor、Venture Capital

This topic of APP games design through the subject, make people know more about the long march of the Red Army, the Red Army culture, the historical background about the Red Army,that it is clear and easy to understand the Red Army culture. Development tools are used byAdobe Illustrator, PhotoShop, Venture Capital. With the development of science and technology, mobile phone is now more and more features, more and more powerful, the next few years, mobile phone games will win support among the people, infiltration of people life bit by bit. Key word:The APP games design,Photoshop、Adobe Illustartor、Venture Capital

项目坦克大战设计报告

《JA V A程序开发课程设计》项目设计 项目名称:TankWar 软件 专业:软件工程班级:13软工1班姓名:毛晨光学号:24 一、需求分析: 基本功能: 1.玩家控制的坦克能够四处移动并且打击敌方坦克; 2.敌方坦克能够随机四处移动并且打击玩家控制的坦克; 3.玩家控制的坦克拥有血量,而敌方坦克没有; 4.坦克受到攻击时血条会缩短; 5.敌方坦克被消灭完之后,提示游戏胜利; 6.用户方坦克被消灭后提示游戏结束; 特色功能: 1.坦克具有图片,不单单只是个圈圈。 2.增加了血包功能,地图上会随机出现一个血包,我方坦克开过会增加 血量。 二、系统设计: 类:实现游戏界面地图的初始化。 类:绘制和重绘功能。 :监听用户的键盘输入。 类:实现坦克的初始化,绘制,移动,发射等功能。 :实现敌方坦克的初始化,绘制,移动,发射等功能。 类:实现炮弹的初始化,绘制,移动,攻击功能。 类:实现爆炸的初始化。绘制功能,爆炸效果由绘制半径从小到大再到小的圆实现。 类:包含枚举。 类:用于实现血包的功能。 三、功能实现。 一.绘制地图功能: public class TankMap extends Frame{ tart(); }

制坦克功能:public class Tank { 方坦克的绘制方法 public class EnemyTank extends Tank{ 弹绘制方法public class Shell { ntersects())){

ntersects())){ "hittanks"); (false); =false; Explor ex=new Explor(x-3,y-3,; return true; } } return true; } }

funcode C++课程设计坦克大战

课程设计一坦克大战 一、游戏介绍 相信大部分同学都玩过或看过“坦克大战”这款经典游戏。现在,就由我们自己动手来开发它。只要大家具备了C++语言和面向对象的基础知识,然后按照实验指南的指导一步一步进行下去,相信我们每个同学都能把这款经典游戏做出来。 二、实验目标 综合运用C++及其面向对象的知识开发一款小游戏。 三、实验内容 在一个战场上,玩家控制坦克,消灭敌方坦克,并防止敌方坦克摧毁我方基地。游戏的具体要求如下: 1、游戏有一个初始页面,如下图。 2、按下任意键开始游戏,玩家控制坦克在战场上穿梭,碰到墙时,不能通过。 3、敌方坦克自由移动,每隔2秒改变一个方向,每隔3秒发射一发子弹。 4、敌方坦克每隔5秒出现一辆,从屏幕上方的左、中、右三个位置依次出现。 5、当玩家被消灭或者我方基地被摧毁或者游戏时间大于30秒的时候,游戏结束。 游戏开始前 进入游戏

四、游戏的整体框架 五、实验指南 实验准备 打开FunCode,创建一个新的C++项目。注意:项目名称必须为英文和数字,且不能有空格。 点击“项目”→“导入地图模板”,从对话框中选取名称为TankWar的模板导入。导入成功后,界面如下: 实验一游戏开始 【实验内容】 1、设置游戏标题 2、按空格键,提示图片消失,游戏进入开始状态. 【实验运行结果】 游戏开始前 按下空格键后 【实验思路】

按下空格键是键盘按下事件,可在CSystem::OnKeyDown函数中编写响应代码。为了保证程序结构的清晰、一致,更好的办法是在CGameMain类中添加一个相应的键盘按下事件处理函数,然后在CSystem::OnMouseClick函数中进行调用。 g_GameMain是CGameMain类的对象,它是全局变量,在程序运行时最先被创建。【实验指导】 1、C++程序的执行入口是主函数。FunCode的主函数名称叫WinMain,写在Main.cpp 文件中。CSystem::SetWindowTitle是设置程序运行窗口标题的函数,修改如下:CSystem::SetWindowTitle("坦克大战"); 2、参考CSystem::OnKeyDown函数,为CGameMain类创建一个OnKeyDown函数。 CGameMain类的头文件是LessonX.h文件,实现代码写在LessonX.cpp文件中。因此,先在LessonX.h文件对函数进行声明。函数的返回值和参数列表都与 CSystem::OnKeyDown函数保持一致。访问权限应该是public。代码如下: voidOnKeyDown(constintiKey,constboolbAltPress,constboolbShiftPress,cons tboolbCtrlPress); 3、接着,在Lesson.cpp文件中对该函数进行定义: voidCGameMain::OnKeyDown(constintiKey,constboolbAltPress,constboolbShif tPress,constboolbCtrlPress) { }

基于android的游戏开发毕业设计论文

基于a n d r o i d的游戏开发毕业设计论文 Coca-cola standardization office【ZZ5AB-ZZSYT-ZZ2C-ZZ682T-ZZT18】

毕业设计(论文) 基于Android平台2048游戏开发教学单位:计算机学院 专业名称:软件工程(游戏与数字媒体) 学号: 学生姓名:高振东 指导教师:宋喜佳(讲师) 指导单位:计算机学院 完成时间:2016年4月30日 电子科技大学中山学院教务处制发

基于Android平台2048游戏开发 【摘要】在生活节奏不断加快的现代社会,轻松的益智游戏对缓解生活压力调节情绪具有重要的意义。《2048》这款小游戏是一款流行的。第一款《2048》小游戏是由Gabriele Cirulli首度发布在GitHub上。《2048》是当时基于《1024》和《小三传奇》这两款的玩法而开发的新型数字游戏,而游戏设计初衷是一款益智类的游戏,其特点在于轻松,简单,因此,开发要求做到各项功能要完备、操作要简便、易学易用。现在开发出来的版本有普通版、六边形版、朝代版、3D 版、后宫版等等。 本文采用 JAVA语言开发了 2048 小游戏,通过Android平台实现了 2048 的基本运行,本着简单,易于操作的原则和缓解生活压力、降低生活节奏的初衷,游戏中没有繁多的按钮,也不用特别复杂的操作,只需动动手指,即可操纵自如。 游戏经过图形界面的处理,以不同的颜色显示不同的数字,并拥有了最高成绩记录,撤销上一步,重置游戏的各项功能。对于游戏的逻辑实现部分进行测试,测试结果正常,目前没有发现异常。但是游戏界面可能有些简单,日后可以通过美化界面来获得更好的游戏体验。 【关键词】游戏;益智;数字

游戏设计毕业论文15篇

游戏设计毕业论文15篇 游戏设计毕业论文 摘要:动画以及游戏的场景造型中更需要美感,因而设计师需要在这方面加大关注点,场景设计的关键是需要展现出故事情节,在完成戏剧冲突和刻画人物上面有所侧重。所以创造时,好看的场景必然会带动整部作品的基调。一个优秀的游戏场景设计需要有着精美的背景,所以要具备娴熟的绘制,更要有细致的前期设计。 关键词 游戏设计毕业设计论文设计 游戏设计毕业论文:手机游戏开发中软件工程的设计与改进 摘要现阶段计算机互联网的不断发展,使得网络游戏层出不穷。同样道理,手机等移动通信终端走进了千家万户,手机游戏具有十分广阔的市场。目前手机性能处于不断完善过程中,手机游戏需求逐渐呈现出增加趋势。在手机游戏开发过程中,本身从性质上讲,手机游戏隶属于软件工程,因而需要软件项目团队的充分参与。本文浅要分析手机游戏开发阶段,如何加强软件工程设计及改进,并浅谈自身关于软件开发相应方法。 软件工程手机游戏开发设计改进 现阶段手机在我国实现广泛普及,手机游戏越来越受到大众群体欢迎。尤其是目前手机在性能方面逐步开始完善,手机游戏市场得到十分迅速发展。上述背景下,只有注重加强软件工程团队建设,才能充分有助于手机游戏开发工作顺利开展。尤其是对于手机游戏软件而言,只有充分借助于科学软件工程技术,才能有效规避软件危急,同时减少成本消耗,使手机游戏开发贯彻落实。为此,有必要结合相关实践,加强手机游戏项目建设过程中,软件工程技术的应用和探索。 1 项目准备及项目需求分析

在实际软件开发阶段,需求管理工作尤为关键,该工作需自始至终融入到全部软件开发阶段。对于手机游戏开发而言,本身不具备特定客户需求,因为手机游戏最终为广大用户服务,用户通常是通过移动互联网等平台进行相应游戏的下载。为此,通常要分析客户实际要求,也就是等同于游戏企划本身需求。对于手机游戏企划而言,需要指定相应企划方案,然后才能进行开发计划制定工作。通常来说,只有当企划过程中存在一定需求变化,亦或者由于技术方面出现问题,游戏企划才会在需求方面做出相应调整。项目准备过程中,如果不采用相关软件技术,只需要游戏负责人做好分配工作即可。对于应用软件技术项目开发而言,还应做好计划策略工作。例如,采用TSP方法过程中,应对项目进度进行严格遵循,并对进度加强检查。具体来说,应做好下面几点: (1)开发人员应加强沟通交流,将实际问题充分解决。 (2)鉴于手机游戏属于规模很小软件,因而尽量避免重新进行任务分配。 (3)做好项目计划总结等方面工作。 (4)做好应用计划策略方面工作。 2 系统设计阶段 对于手机游戏开发而言,还应首先做好相应构架,通常构架需根据游戏策划进行,同时也应加强与程序员之间沟通交流。实际手机游戏开发阶段,鉴于其易受到多方面因素影响,因而设计基本不可能一次成功,因而系统设计本身需要不断持续进行,这样才能避免需求变化带来的诸多不利影响。如果设计始终一成不变,必然不会是真正好的设计。例如,采用XP方法过程中,遵循简单设计原则进行。为此针对RUP使用,开发人员先要加强构架设计工作,构架设计需遵循本质需求,并尽量做到设计简单的同时使其充分发挥实效。从本质上讲,RUP剪裁过程中,本身已属于软件设计再开发工程。以某款手机游戏为例,该游戏设计阶段,总共开发周期时间达到4周,从迭代周期上讲,主要包括下面四个阶段:第一周期,主要针对于程序框架构建工作,主要是需加强角色模型构建。第二周期,主要针对于手机程序,然后对程序进行地图增设,并进行地图碰撞检测工作,并适当增设相应角色模型,促使人物能够自由行动。第三周期,根据实际情况适当添加电脑控制,并进行相应逻辑判断工作,并对触发条件加以科学设定。第四周期,适当添设菜单及对话框,并开展记录程序编写工作。

游戏毕业设计论文

人生最大的幸福,是发现自己爱的人正好也爱着自己。 游戏毕业设计论文 1.游戏设计背景 随着科技与经济的快速发达 知识经济的快速增长 娱乐逐渐变成人与智能的交流 智能化的娱乐游戏在网络里愈来愈好 众多的游戏不胜枚举 比如益智类的小游戏、腾讯游戏、网页游戏、格斗游戏、模拟游戏等尤其是最近网络上特别流行的Flash制作的动画越来越受关注 现在就探究下用Flash软件制作贪吃蛇的游戏的设计原理 1.1游戏设计原理 游戏贪吃蛇就是在Flash软件用影片剪辑设计出蛇 食物 同时随机地给出食物 游戏者通过键盘操作控制贪吃蛇的移动 去吃食物 吃到食物后消失 然后再随机给出食物同时蛇的身体增长 设计蛇的原理就是利用人眼的视觉效应先将蛇头向前移动一格 然后所有蛇身依次向前移动一格 最后再擦除蛇尾 这样看来好像蛇在向前移动 食物的给出 首先需要产生一个随机数 然后通过这个随机数计算得到食物的纵横坐标 在软件运行效果里显示出来 控制蛇的移动方向 需要扫描键盘 然后根据键值改变蛇的移动方向 1.2游戏设计的运行环境 学习Flash开发 首先要建立首要的、基础的正确认知 在几乎任何应用程序开发中 都要接触到三个相互关联的方面:一个是开发环境 一个是运行环境 再一个是开发语言 1.2.1软件开发环境 Flash应用程序开发也包含着三个方面 即使用Flash CS3作为开发环境 以ActionScript 2.0作为开发语言

以Flash Player 9为运行环境进行Flash应用程序开发和创作的完整知识体系 对于Flash应用程序开发 在进行Flash开发时 安装一个开发工具(也被称为开发环境、创作环境等 目前流行的Flash开发工具基本都是Adobe公司的产品 最著名的就是Flash CS3和FLEX 1.2.2运行环境 Windows Macintosh 处理器 800 MHz Intel Pentium III processor (or equivalent) and later 600 MHz PowerPC G3 and later 操作系统 Windows 2000 Windows XP Mac OS X 10.3 10.4 内存 256 MB RAM (1 GB recommended to run more than one Studio 8 product simultaneously) 256 MB RAM (1 GB recommended to run more than one Studio 8 product simultaneously) 显示 1024 x 768 16-bit display (32-bit recommended) 1024 x 768 thousands of colors display (millions of colors recommended) 磁盘空间 710 MB available disk space 360 MB available disk space 1.2.3开发语言 用户要进行Flash开发 要接触是ActionScript(简称AS) ActionScript程序语言是用于Flash开发的交互语言 ActionScript有三种语言编写风格 这就是AS1、AS2和AS3 AS1遵循ECMA-262第3版所制定的规范 AS2遵循即将发布的ECMA-262第4版规范 但它们的运行环境只有一种 即Flash Player VM(Adobe称为AVM1 AVM是ActionScript虚拟机的简称) 2.游戏设计相关知识介绍 了解贪吃蛇的设计原理后

坦克大战课程设计论文

坦克大战游戏设计 1.课程设计的目的 随着手机的日益普及,java功能在移动设备上的实现及java 应用程序产生的影响力,对丰富人们的生活内容,提供便捷的咨询起着不可忽视的作用。本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。本项目重点运用了图形化用户界面GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测等知识点。通过此课程设计,使学生巩固所学知识、培养学生动手能力,了解Java的面向对象的体系结构。学生用Java语言设计一个完整的应用程序,综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。 2.设计方案论证 2.1设计思路 本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。 一、游戏基本元素:坦克,炮管,子弹,墙壁,地雷 二、它的主要功能: (1)能够朝四个方向移动:上、下、左、右键。 (2) 按下鼠标左键发射普通子弹;按下鼠标右键发射散弹;子 弹爆炸的效果,普通子弹和炮弹的效果 (3)敌人能够移动

(4)能够模拟爆炸 (5)能够产生障碍 (6)能够增长生命 玩家控制主坦克(上方有血条的)的移动以及炮弹的发射。若玩家将敌方坦克全部打掉则玩家胜;若期间由玩家控制的主坦克被打掉则视为玩家失败。游戏中只有普通墙作为障碍物,玩家无法穿越它们并且普通子弹不能将墙打穿 ;但是玩家可以用炮弹将普通墙打掉。桃心可以将坦克的血加满。 2.2简要的设计流程: 键盘监听器 2.2设计方法 2.2.1构建游戏主类

计算机专业毕业论文-电脑游戏飞机大战的开发与设计

毕业设计(论文) 题目:飞机大战游戏的设计与开发学院:计算机科学学院 专业班级:电子信息科学与技术11级1班指导教师:职称:副教授 学生姓名: 学号:

摘要 飞机游戏是一款风靡全球的电视机游戏和掌上游戏机产品,曾几何时,它创造了一个无法企及的游戏巅峰,也曾影响了一代产业链。虽然它辉煌的业绩在历史的涡轮中渐渐远去,但这款游戏每每提及,总会令人爱不释手,魂牵梦绕。 这款游戏的名字叫做飞机大战,它是运行于Windows操作系统下的一款2D 游戏,以C/C++为开发语言,构建于Microsoft Foundation Class Library(MFC)框架体系中,其中调用了部分的Win32API函数接口,在Visual Studio2010环境下开发的一款多媒体游戏。 随着硬件性能的不断提高,游戏的日益普及,使开发者不再需要过多的关注不同的硬件设备。本论文着眼于双缓冲绘图的运用,开发出仅用于理论研究的二维平面射击类游戏。 本文首先分析了电脑游戏的发展历史,然后分析了制作游戏的基本流程和游戏本身所要包含的几种元素以及游戏应具备的游戏层次。根据2D游戏的特点和游戏的角色,以及给用户呈现的游戏界面的特效,对2D图形技术,Windows 图形界面编程技术GDI,DirectDraw的显卡接口和DirectSound声卡接口以及MVC 设计模式下的MFC框架等技术进行了比较仔细的研究。通过自定义一个游戏类CGame,封装了游戏元素的基本属性和行为,这样便于在用到游戏的行为操作是,只要轻松的产生CGame对象便可直接调用其方法,也有利于升级为双人游戏,乃至网络版时,只需要在该类中添加相应的行为便可。当我们向用户呈现游戏运行的界面时,通过Timer时钟控件,映射到相应的处理函数,使得游戏界面大约每2秒钟刷新一下界面,这样才能让一张位图背景图片具有动态效果。当使用DirectSound声卡接口时,我方和敌方相互射击所发出的声音,都是在时钟映射函数调用时处理的。 【关键词:】C/C++; VS 2010/MFC; 飞机大战游戏 I

基于Unity3d的潜行游戏开发毕业设计论文

2011届湖北汽车工业学院毕业设计(论文)毕业设计论文课题名称基于Unity3d的潜行游戏开发 系部计算机工程系 专业计算机科学与技术 班级 学号 姓名 指导教师 2015年 5 月 20 日

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

java开发坦克大战

j a v a开发坦克大战 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

坦克大战游戏演示为什么选择这个项目 1、好玩 2、涉及到java各个方面的技术 1、java面向对象编程; 2、界面编程; 3、绘图技术; 4、多线程; 5、文件i/o操作; 6、数据库 3、巩固旧知识,学习新知识 java绘图坐标体系 绘图坐标本系--介绍 坐标原点位于左上角,以像素为单位。像素是计算机屏幕上最小的显示单位。在java的坐标系中,第一个是X坐标,表示当前位置为水平方向,距离坐标原点X个像素;第二个是Y坐标,表示当前位置为垂直方向,距离坐标原点Y个像素。 坐标体系--像素 计算机在屏幕上显示的内容都是由屏幕上的每一个像素组成的。例如,计算机显示器的分辨率是800×600,表示计算机屏幕上的每一行由800个点组成,共有600行,整个计算机屏幕共有480000个像素。现在的计算机可以支持更高的分辨率,也就是说,屏幕上可以显示更多的像素。因此,像素是一个密度单位,而厘米是长度单位,两者无法比较。 绘图原理(1)[] Component类提供了两个和绘图相关最重要的方法: 1、paint(Graphicsg)绘制组件的外观 2、repaint()刷新组件的外观

当组件第一次在屏幕显示的时候,程序会自动的调用paint()方法来绘制组件 .*; .*; publicclassWindow013extendsJFrame{ ; 7、画字符串drawString(Stringstr,intx,inty); 8、设置画笔的字体setFont(Fontfont); 9、设置画笔的颜色setColor(Colorc); ; .*; publicclassWindow014extendsJFrame{ ; .*; publicclassWindow015extendsJFrame{ ; .*; import publicclassWindow016extendsJFrameimplementsActionListener{ quals("黑色")){ 点击了黑色按钮"); ; }elseif().equals("红色")){ 点击了红色按钮"); ; }else{ 不知道"); } } } classCatimplementsActionListener{ publicvoidactionPerformed(ActionEventarg0){ if().equals("黑色")){ 也知道你按下了黑色按钮");

项目-坦克大战-设计报告

《JAVA程序开发课程设计》项目设计 项目名称:TankWar 软件 专业:软件工程班级:13软工1班姓名:毛晨光学号:1322120124 一、需求分析: 基本功能: 1.玩家控制的坦克能够四处移动并且打击敌方坦克; 2.敌方坦克能够随机四处移动并且打击玩家控制的坦克; 3.玩家控制的坦克拥有血量,而敌方坦克没有; 4.坦克受到攻击时血条会缩短; 5.敌方坦克被消灭完之后,提示游戏胜利; 6.用户方坦克被消灭后提示游戏结束; 特色功能: 1.坦克具有图片,不单单只是个圈圈。 2.增加了血包功能,地图上会随机出现一个血包,我方坦克开过会增加 血量。 二、系统设计: 1.TankMap类:实现游戏界面地图的初始化。 2.PainTread类:绘制和重绘功能。 3.DirectionHandler:监听用户的键盘输入。

4.Tank类:实现坦克的初始化,绘制,移动,发射等功能。 5.EnemyTank:实现敌方坦克的初始化,绘制,移动,发射等功能。 6.Shell类:实现炮弹的初始化,绘制,移动,攻击功能。 7.Explor类:实现爆炸的初始化。绘制功能,爆炸效果由绘制半径从小到 大再到小的圆实现。 8.Direction类:包含枚举。 9.Blood类:用于实现血包的功能。 三、功能实现。 一.绘制地图功能: public class TankMap extends Frame{ //定义地图的尺寸。 public static final int MAPWIDTH=800; public static final int MAPHEIGHT=600; //我方坦克 Tank t=null; //定义随机出现的血包 Random r=new Random(); Image bufferImage=null; public static java.util.Listshells=new ArrayList(); //地方坦克集合 public static java.util.List-> enemys=new ArrayList();

游戏专业毕业设计论文

游戏专业毕业设计论文 游戏行业是一个飞速发展的行业,时时刻刻都在进步和发展,我们在做毕业设计的时候也要与时俱进。下面是游戏专业毕业设计论文,为大家提供参考。 摘要:本文在分析数字游戏产业的特点和作为数字游戏设计者所需具备的知识结构。阐述高校培养数字游戏人才的现状的基础上。数字游戏专业学生培养所需要的课程结构、专业教师资源结构和生源探讨要求,以及学生培养的方法和考核标准,并尝试提出解决高校与数字游戏市场脱节问题的对策。 数字游戏,无论在中国,还是在同际上,已经形成了大规模产业化的格局。面对该产业的迅速增长带来的大量市场需求,高校有义务担负起培养大批数字游戏设计人才的任务,那么高校如何培养适合市场需求的人才,是当前高校开始数字游戏专业所面临的问题。 众所周知。数字游戏是一种综合故事情节、美术,音乐、动画、程序,市场营销于一身的互动性娱乐软件。有人甚至把游戏称作继文学、绘画、雕刻、舞蹈、音乐、建筑、戏剧和电影之后的“第九艺术”。可以这么说,数字游戏产品它既不是纯艺术。亦不是纯技术,而是技术与艺术相结合的产物。由数字游戏的特点,可以得出,它涉足于各个行业的知识领域,知识积累得越多,开发的游戏产品就会越有内涵。

因此,对于游戏开发人员的要求很高。 从数字游戏的特点和人才知识结构出发,可以总结出数字游戏人才所必须掌握的技能: 1.想象力:是游戏设计者必须具有的基本能力,只有具备丰富的想象力,才能创造出一个令人信服虚拟的空间世界,其中包括视觉、听觉,故事、概念和横向思考能力等。 2.技术能力:关于计算机程序、游戏工作原理的认知的能力。 3.分析能力:学习和研究某种事物的能力。 4.数学能力:需要掌握基本上的数学工具,包括线性代数、高等数学、三角学、概率论等。 5.美学能力:具备一般的美学能力和某种时尚感,这样才能在设计游戏世界当中体现出数字游戏的美学艺术,并把技术内涵呈现出来。 6.常识和调查能力:必须受过很多教育并且有广泛爱好。精通历史、文学、艺术、科学等将对游戏设计非常有帮助。 7.写作技巧:一名专业的游戏设计师实际需要花费大量的时间写各种设计文档,并且必须清晰、简明、准确和明了。 8.绘画技巧:某种基本的绘画和素描技能对于游戏设计师来说,这门技巧将对团队交流和寻找投资产生客观的作用。 9.妥协能力:游戏设计是一个团队协作的产物,必须学会在团队中协调各种想法和冲突,并使整个团队顺利运行。

坦克大战游戏程序课程设计

《程序设计应用基础》课程设计计划书

坦克大战游戏 1引言 学习了C语言程序设计之后,我们粗略的掌握了程序设计的基本思路和要求,为了更加熟练的掌握这门计算机语言,我们选择编译一个经典小游戏——坦克大战。通过课程设计提高我们的动手能力,把理论知识运用到实践当中。在课程设计中,C语言的语法和逻辑严谨,对于初学者而言,有时忘记一个逗号或者分号整个程序便运行不了,经过了反复的调试,修改,最终形成可执行的程序。在这个过程中,通过不断的练习,我们对C语言的掌握程度有明显的提高,同时,也锻炼了我们的头脑,使我们的思维更加科学严谨。 2设计方案 2.1设计思路 坦克大战游戏,一共两关。不同的关卡,游戏地图、敌方坦克出现的种类不一样。敌方坦克地图上最多存在4辆,击杀后会出现新坦克直至补足4个,当击杀坦克一定数值则敌方新坦克不会再增加。击杀完所有坦克则胜利过关。己方坦克也有复活次数,用完则失败。另地图正下方有己方老家,若被敌方坦克攻破则游戏失败。 3程序设计与实施 3.1程序的主要模块 整个程序分为里表两大部分。 里部分由41*41的int地图数组组成,每个元素代表了该以该数组元素行列下标为地图坐标y,x那个单元的情况,不同的地图障碍物在该数组有不同的值,坦克在地图上占3*3个单元,在地图数组内相应坐标的3*3个元素内也对应特殊的值。由地图数组值可以读出该坦克信息。 表部分则是根据里部分的地图数组通过gotoxy和printf函数在命令行界面打印出相应字符以构成游戏界面的。 程序中的每个函数操作都是通过里部分(地图数组)判定,然后对里部分(地图数组)操作,再由里部改变外部,由gotoxy和printf函数将可视化界面呈现给玩家。也就是游戏主体函数内里表部分是一起操作的,不分开。 对于函数分类,程序又可分为三大类。一类游戏辅助函数。一个子弹系统,一个坦克系统。子弹和坦克分别都是独立运作的系统,有少量信息交换。 3.2 主函数及其流程图 主函数包括打印地图,实现游戏内置调节游戏速度的功能,判断坦克类型,判断敌我坦克是否存活,判断游戏胜负。 3

贪吃蛇游戏设计毕业设计论文

毕业设计设计题目:贪吃蛇游戏

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

程序设计实训坦克大战实验报告材料

程序设计实训报告 坦克大战 专业班级:装控1401 实习时间:2015年7月10日至7月14日实习地点:微401 成员 1:赵振华 成员 2:许晨欢 成员 3:蒋绪涛

一、作品概述 1.1 创新点: 1、自定义并命名树林和钢板精灵,设置树林属性为不接受碰撞可以自由穿梭,钢板为接受任何碰撞但不做任何处理(即子弹和坦克均不能摧毁钢板)。 2、添加坦克发炮、击中目标和坦克移动的特殊声效。 1.2 概述: 这款游戏是我们QWER小组以经典90版坦克大战为背景制作的坦克大战的改编款,玩家通过控制坦克摧毁敌方坦克来保卫主基地不被摧毁。当敌我双方坦克相碰或己方基地被子弹摧毁时游戏结束(敌我双方子弹均可摧毁基地),每隔3秒钟出现一辆敌方坦克,游戏最大时长为100秒。此款游戏与经典90版坦克大战较为相似,操作简单,能唤起我们对童年的回忆。 二、功能设计 玩家坦克与敌方坦克在街道中进行巷战,玩家坦克被击中或与敌方坦克相撞、玩家指挥部被击中或游戏时间到,一局游戏结束。 按下空格键后游戏开始,“空格开始”消失,载入地图,100秒倒计时开始,并把玩家坦克设置在指挥部左侧。 游戏时间到,玩家坦克被敌方坦克摧毁,与敌方坦克相撞,或者玩家指挥部被摧毁,一局游戏结束,游戏回到初始界面,并显示上一局的分数。 玩家用W、A、S、D键控制坦克上、下、左、右运行,按J键开炮。坦克行进过程中有特殊声效,坦克发射或击中目标都有相应的声效。玩家坦克碰到墙和钢板就停下来,需要调转方向才能继续前进。玩家坦克开炮,一炮就能摧毁一块墙或者一辆敌方坦克,但不能摧毁钢板,玩家可穿梭于树林中。玩家每摧毁一辆敌方坦克,加1分。 玩家指挥部被坦克或者炮弹(不管玩家还是敌方)碰上,都会被摧毁。 每隔3秒钟,就会产生一辆敌方坦克。敌方坦克每隔一段时间,就自动开炮。敌方坦克遇到墙就会停下来。停下来的坦克,前方的墙如果被摧毁了,又能继续前进。每隔几秒钟,敌方坦克就会顺时针变换一个方向前进。每局最大时长为100秒。

手机游戏的设计与实现—毕业设计(论文)

手机游戏的设计与实现

山东大学毕业设计(论文)成绩评定表学院:专业:年级: 答辩成绩(40%)

目录 摘要 (3) Abstract (4) 第 1 章绪论 (5) 1.1手机游戏 (5) 1.2手机游戏的分类 (5) 1.3技术简介 (7) 1.3.1Android简介 (7) 1.3.2Eclipse/IBM-Eclipse简介 (8) 1.3.3Android SDK简介 (8) 1.3.4SQLite简介 (9) 1.3.5数据库的设计 (10) 第 2 章需求分析 (12) 2.1需求分析 (12) 2.1.1基本功能需求 (12) 2.1.2具体功能需求 (13) 2.1.3运行环境 (13) 2.1.4性能需求 (14) 2.2系统结构化分析 (14) 2.3目标系统要求 (18) 第 3 章总体设计 (19) 3.1系统界面总体设计 (19) 3.2总体流程设计 (20) 3.3游戏程序结构 (20) 3.4后台数据库的总体设计 (21) 第 4 章详细设计 (22) 4.1主菜单详细设置 (22) 4.2游戏关卡详细设置 (23)

4.3闯关过程详细设置 (24) 4.4道具系统详细设置 (26) 4.5剧情详细设置 (28) 4.6系统数据库详细设计实现 (32) 4.6.1概念模型设计 (33) 4.6.2逻辑模型设计 (33) 4.6.3物理模型设计 (34) 4.7数据库链接设置 (35) 第 5 章系统测试 (37) 5.1系统测试模型选择介绍 (37) 5.2系统测试运行结果 (38) 第 6 章结束语 (42) 致谢 (43) 参考文献 (44) 附录一英文原文 (45) 附录二译文 (52)

java坦克大战毕业设计论文

基于J2SE的网络版坦克大战游戏设计 摘要 [摘要]:J2SE (Java 2 Standard Edition)就是Java2的标准版,主要用于桌面应用软件的编程,是伴随着计算机技术的飞速发展而诞生的一项新的开发技术。随着个人电脑的日益普及、Java 功能在个人电脑上的实现,Java应用程序产生的单机增值服务逐渐体现出其影响力,对丰富人们的生活内容、愉悦身心、开发智力等起着不可忽视的作用。该论文通过总结和分析JA V A 游戏的开发流程和代码框架的设计,开发了一款基于J2SE架构的游戏——坦克大战。本设计采用面向对象的设计模式,对游戏中的所有物体赋予对象的概念和属性。运行程序后允许用户选择执行选项菜单。在开始游戏后,启动服务器和客户端,对背景的所有物体进行绘图。在主程序运行的线程中,画面刷新将以一定的频率采用双缓冲技术对屏幕重绘,实时反映整个游戏的进行状态。用户控制的坦克运行在主线程中,随屏幕刷新的频率而移动。坦克将在游戏开始时进行初始化,然后将坦克绘制在地图的上层。本设计主要实现的功能是让坦克能向八个方向移动,并且打出炮弹,子弹击中敌人坦克,子弹和敌人坦克同时消失,产生爆炸,CPU坦克能智能的移动并且打出炮弹。能够支持网络对战和单机对战两种模式。 Java良好的跨平台特性在软件的开发中显示出了巨大的威力,“一次编写,随处运行”,java 系统可以运行在不同的操作系统和硬件上。随着linux的持续增长以及MacOSX完全支持java 技术,跨平台的特性变得越来越有分量。 由于免费、跨平台、java语言本身技术先进,在高校中,java已经成为许多学科研究、课程和计算的首选语言,用java做上机作业,一般都是鼓励的。据我所知,北大、清华许多院系的研究生入学考试都可以用java语言答题。实际上,用java来完成这些工作,大多数情况下要比用C或其他语言简洁得多,你可以把注意力集中在算法等核心部分,从而获得更高分数。 [关键词] 面向对象坦克大战游戏J2SE Socket

毕业设计论文 基于J2ME的Java游戏--坦克大战的开发

目录 摘要 ................................................................................................................... - I - Abstract .................................................................................................................... - I - 引言 ...................................................................................................................... II 第一章绪论 .................................................................................................... - 1 - 1.1 手机软件现状.......................................................................................... - 1 - 1.2 游戏业务及J2ME概况............................................................................ - 1 - 1.3 任天堂(Nintendo)的8位FC机器和Battle City背景介绍............ - 3 - 1.4 本章小结.................................................................................................. - 3 - 第二章开发环境及相关技术的介绍 ................................................................ - 5 - 2.1 开发环境.................................................................................................. - 5 - 2.2 Java语言的特点..................................................................................... - 5 - 2.3 关于JBuilder9....................................................................................... - 5 - 2.4 关于Wireless Tool Kit....................................................................... - 6 - 2.5 Java Appication Manager.................................................................... - 6 - 2.6 本章小结.................................................................................................. - 6 - 第三章程序结构、思想和相关技术 ................................................................ - 7 - 3.1 本程序需解决的有关技术问题.............................................................. - 7 - 3.2 程序流程.................................................................................................. - 8 - 3.3 绘图与MIDP2.0新增的GameCanvas包.............................................. - 10 - 3.3.1 提供低级绘制的Canvas类....................................................... - 10 - 3.3.2 Graphics类................................................................................ - 10 - 3.3.3 PNG格式...................................................................................... - 10 - 3.3.4 Game包中的新功能.................................................................... - 11 - 3.3.5 有关绘图的一些技术................................................................. - 12 - 3.4 坦克的控制和敌方的智能运行............................................................ - 12 - 3.5 子弹的运行和控制................................................................................ - 13 - 3.6 RMS数据库系统..................................................................................... - 14 - 3.7 内存使用的最佳化................................................................................ - 15 - 3.8 混淆器(Obfuscator)的使用................................................................ - 16 - 3.9 模拟器的相关调试................................................................................ - 16 - 3.10 本章小结.............................................................................................. - 17 - 第四章程序分析和具体实现 .............................................................................. - 18 - 4.1 游戏进入前的选择................................................................................ - 18 - 4.2 主游戏逻辑及其涉及到的若干类........................................................ - 19 - 4.3 坦克的共同行为.................................................................................... - 21 - 4.4 玩家坦克的功能属性............................................................................ - 22 - 4.5 敌人坦克的功能属性............................................................................ - 22 - 4.6 子弹的运行和控制................................................................................ - 24 - 4.7 记分系统................................................................................................ - 25 -

相关主题
文本预览
相关文档 最新文档