游戏设计实验报告

合集下载

游戏设计实验报告总结

游戏设计实验报告总结

02
用户满意度对玩家忠诚度的影响
• 用户满意度的提升对玩家忠诚度的提高
• 用户满意度的降低对玩家忠诚度的降低
• 用户满意度的稳定性对玩家忠诚度的影响
03
用户体验与满意度对游戏口碑的影响
• 用户体验与满意度对游戏口碑的正面影响
• 用户体验与满意度对游戏口碑的负面影响
• 用户体验与满意度对游戏口碑的稳定影响
• 优化游戏玩法与机制的设计
• 提高用户体验与满意度
实验报告对未来游戏设计的影响
• 推动游戏设计的发展与创新
• 提高游戏设计的质量与水平
• 促进游戏行业的繁荣与进步
游戏设计实验报告在行业内的应用与推广
游戏设计实验报告在行业内的应用
游戏设计实验报告的推广
• 游戏开发者的参考与借鉴
• 加强游戏设计实验报告的学术交流
• 角色设定的个性与共性对玩家投入度的影响
• 游戏剧情与角色设定的契合度对玩家投入度的提升
⌛️
游戏系统与机制对游戏可玩性的影响
• 游戏系统的复杂性对游戏可玩性的影响
• 游戏机制的多样性对游戏可玩性的影响
• 游戏系统与机制的平衡性对游戏可玩性的提升
游戏玩法与机制对玩家参与度的影响

游戏玩法的多样性与创新性对玩家兴趣的影响
实验报告中的游戏设计元素分析
游戏设计元素对游戏体验的影响
• 游戏画面与音效对游戏氛围的影响
• 游戏剧情与角色设定对玩家投入度的影响
• 游戏系统与机制对游戏可玩性的影响
游戏设计元素的优化建议
• 提高游戏画面的视觉效果
• 优化游戏音效的沉浸感
• 加强游戏剧情与角色设定的吸引力
游戏设计元素的实际应用案例

手机游戏设计实验报告(3篇)

手机游戏设计实验报告(3篇)

第1篇一、实验背景与目的随着移动互联网的快速发展,手机游戏已成为人们休闲娱乐的重要方式。

为了提高我国手机游戏设计水平,培养具备创新能力和实践能力的设计人才,本实验旨在通过实际操作,掌握手机游戏设计的基本流程、方法和技巧,提升设计实践能力。

二、实验内容与步骤1. 游戏选题与策划(1)选题:选择一款具有市场潜力、符合用户需求的手机游戏题材。

(2)策划:制定游戏的基本框架、角色设定、故事情节、游戏规则等。

2. 游戏界面设计(1)界面风格:根据游戏题材和用户喜好,确定界面风格。

(2)界面布局:设计游戏主界面、菜单、角色信息、地图、战斗界面等。

(3)图标与素材:制作游戏图标、按钮、角色、道具等素材。

3. 游戏编程(1)游戏逻辑:编写游戏基本规则、角色行为、事件触发等代码。

(2)图形渲染:使用游戏引擎(如Unity、Cocos2d-x等)实现游戏界面渲染。

(3)音频处理:添加背景音乐、音效等,增强游戏氛围。

4. 游戏测试与优化(1)功能测试:测试游戏基本功能、角色行为、界面交互等。

(2)性能测试:测试游戏运行速度、内存占用等性能指标。

(3)优化调整:针对测试中发现的问题,进行代码优化、界面调整等。

三、实验过程与结果1. 游戏选题与策划我们选择了一款以武侠题材为背景的手机游戏。

游戏以一个少年成长为武林高手的历程为主线,融入了丰富的角色、技能、装备和任务系统。

2. 游戏界面设计(1)界面风格:采用古典武侠风格,以水墨画为主色调。

(2)界面布局:设计了主界面、菜单、角色信息、地图、战斗界面等,界面简洁明了,易于操作。

(3)图标与素材:制作了游戏图标、按钮、角色、道具等素材,风格与游戏整体风格一致。

3. 游戏编程(1)游戏逻辑:实现了游戏基本规则、角色行为、事件触发等代码。

(2)图形渲染:使用Unity游戏引擎实现了游戏界面渲染,画面流畅,效果良好。

(3)音频处理:添加了背景音乐、音效等,增强了游戏氛围。

4. 游戏测试与优化(1)功能测试:测试了游戏基本功能、角色行为、界面交互等,未发现重大问题。

贪吃蛇游戏程序设计实验报告

贪吃蛇游戏程序设计实验报告

贪吃蛇游戏程序设计实验报告贪吃蛇游戏程序设计实验报告1、引言1.1 文档目的1.2 背景介绍1.3 项目概述2、需求分析2.1 用户需求2.2 功能需求2.3 非功能需求3、总体设计3.1 系统结构3.2 使用的开发工具和技术3.3 程序流程图3.4 数据结构设计4、模块设计4.1 游戏界面模块设计4.2 蛇的移动模块设计4.3 食物模块设计4.4 游戏结束判定模块设计5、开发过程5.1 编码规范5.2 界面设计与实现5.3 功能模块实现5.4 联合测试与整合调试6、测试结果与分析6.1 单元测试6.2 集成测试6.3 性能测试6.4 用户验收测试7、部署与运维7.1 系统环境要求7.2 安装步骤7.3 运行与维护8、问题与解决方案8.1 开发中的问题8.2 解决方案9、结论9.1 实验总结9.2 实现目标9.3 后续改进方向附件:- 源代码文件- 参考文献法律名词及注释:- 版权:保护原创作品的独有权利,防止他人未经授权使用、复制或传播。

- 许可证:授权他人在特定条件下使用受版权保护的作品。

- 商标:用于标识特定产品或服务来源的标识,可以是文字、图形、颜色或声音。

- 专利:通过创造一种新的发明而获得的对该发明的独有权利,防止他人在未获许可的情况下制造、使用或销售该发明。

- 使用条款:规定使用软件、服务或作品的条件和限制。

- 免责声明:声明作者或提供者对使用软件、服务或作品时可能产生的损害不承担责任。

全文结束 \。

游戏程序案例实验报告

游戏程序案例实验报告

一、实验目的本次实验旨在通过实际操作,掌握游戏程序开发的基本流程,了解游戏编程的相关知识,提高编程能力。

实验过程中,我们将以开发一个简单的二维游戏为例,学习游戏编程的基本技巧。

二、实验环境1. 操作系统:Windows 102. 开发工具:Unity 2020.1.6f13. 编程语言:C#4. 硬件配置:Intel Core i5-8250U,8GB RAM三、实验内容1. 游戏背景及设计游戏名称:《星际探险家》游戏背景:在遥远的未来,人类成功实现了星际旅行,探索宇宙奥秘。

玩家将扮演一名星际探险家,驾驶飞船穿越宇宙,寻找未知的星球,解锁神秘宝藏。

游戏设计:(1)游戏类型:探险解谜(2)游戏玩法:玩家通过操控飞船,在各个星球间穿梭,完成任务,解锁新的星球。

(3)游戏画面:采用2D像素风格,简洁明了。

2. 游戏开发流程(1)项目创建打开Unity,创建一个新的2D项目,命名为“星际探险家”。

(2)场景搭建在Unity编辑器中,创建一个空的游戏对象作为根对象。

在菜单栏选择“GameObject”,点击“3D Object”,创建一个Cube作为飞船。

为飞船添加一个“Rigidbody”组件,设置重力为0,确保飞船在场景中可以自由移动。

(3)角色控制为飞船添加一个“Character Controller”组件,实现基本的移动、旋转和跳跃功能。

同时,添加一个“Camera”组件,将摄像机绑定到飞船上,跟随飞船移动。

(4)游戏逻辑在C#脚本中,编写游戏逻辑代码,实现以下功能:a. 控制飞船移动:根据玩家输入,调整飞船的移动速度和方向。

b. 星球生成:在游戏场景中随机生成星球,当飞船靠近星球时,自动加载星球场景。

c. 任务系统:玩家完成任务后,获得积分,解锁新的星球。

d. 画面效果:添加简单的粒子效果,增强游戏画面表现力。

(5)音效与音乐在Unity中,导入音效和音乐文件。

为游戏添加背景音乐和音效,增强游戏氛围。

数字游戏规划实验报告

数字游戏规划实验报告

一、实验背景随着信息技术的飞速发展,编程已经成为一种重要的技能。

为了提高编程能力和解决问题的能力,我们选择了一个具有挑战性的数字游戏作为实验项目。

本实验旨在通过设计、实现和测试数字游戏,提高我们的编程水平,同时加深对算法和数据结构的理解。

二、实验目的1. 学习并掌握编程语言的基本语法和编程规范。

2. 熟悉算法设计的基本方法,提高算法思维能力。

3. 了解并运用数据结构,提高数据结构的应用能力。

4. 通过实际项目,提高编程实践能力。

三、实验内容本次实验所设计的数字游戏为一个经典的猜数字游戏。

游戏规则如下:1. 计算机随机生成一个1到100之间的整数。

2. 玩家需要在有限次机会内猜出这个整数。

3. 每次猜错,系统会提示玩家猜测的数字是大了还是小了。

四、实验环境1. 操作系统:Windows 102. 编程语言:Python3.83. 开发工具:PyCharm五、实验过程1. 设计游戏规则和算法在本次实验中,我们采用随机数生成器生成一个1到100之间的整数,玩家通过输入猜测的数字与系统进行交互。

系统根据玩家的猜测结果,给出提示信息。

以下是游戏的主要算法:(1)初始化:生成一个1到100之间的随机整数作为目标数。

(2)输入:玩家输入一个1到100之间的整数。

(3)判断:如果玩家输入的数字与目标数相等,则游戏结束,并输出“恭喜你,猜对了!”;如果玩家输入的数字小于目标数,则输出“猜大了”;如果玩家输入的数字大于目标数,则输出“猜小了”。

(4)重复步骤2和3,直到玩家猜对为止。

2. 编写代码根据以上算法,我们编写了以下Python代码:```pythonimport randomdef guess_number_game():target_number = random.randint(1, 100)try:while True:guess = int(input("请输入一个1到100之间的整数:"))if guess == target_number:print("恭喜你,猜对了!")breakelif guess < target_number:print("猜大了")else:print("猜小了")except ValueError:print("输入错误,请输入一个整数!")guess_number_game()```3. 测试代码为了验证代码的正确性,我们进行了多次测试。

设计贪吃蛇实验报告

设计贪吃蛇实验报告

一、实验目的1. 掌握游戏设计的基本流程和原则。

2. 学会使用Unity游戏引擎进行游戏开发。

3. 提高编程能力和逻辑思维能力。

4. 实现贪吃蛇游戏,并优化游戏性能。

二、实验环境1. 操作系统:Windows 102. 开发工具:Unity 2019.4.10f13. 编程语言:C#三、实验内容1. 游戏设计2. 场景搭建3. 贪吃蛇游戏逻辑实现4. 游戏优化四、实验步骤1. 游戏设计(1)确定游戏主题:贪吃蛇(2)游戏规则:玩家控制蛇头,通过移动蛇头吃到食物,蛇的长度逐渐增加。

同时,蛇头不能撞到墙壁或自己的身体,否则游戏结束。

(3)游戏界面:包括游戏主界面、游戏场景、得分显示、游戏结束界面等。

2. 场景搭建(1)创建游戏场景:使用Unity编辑器创建一个3D场景,命名为“贪吃蛇场景”。

(2)添加墙壁:使用Unity编辑器中的Cube对象创建墙壁,设置墙壁的位置和大小,使墙壁围成一个封闭的空间。

(3)添加食物:使用Unity编辑器中的Sphere对象创建食物,设置食物的位置和大小。

3. 贪吃蛇游戏逻辑实现(1)创建蛇头和蛇身:使用Unity编辑器中的Cube对象创建蛇头和蛇身,设置蛇头和蛇身的位置和大小。

(2)控制蛇头移动:编写C#脚本,实现蛇头在四个方向上的移动。

(3)蛇头吃到食物:当蛇头与食物接触时,蛇的长度增加,食物消失。

(4)蛇头撞到墙壁或自身:当蛇头与墙壁或自身接触时,游戏结束。

4. 游戏优化(1)提高游戏帧率:通过优化代码和减少资源消耗,提高游戏帧率。

(2)优化蛇身移动:在蛇身移动时,减少不必要的计算,提高游戏性能。

五、实验结果与分析1. 实验结果通过以上步骤,成功实现了一个简单的贪吃蛇游戏。

游戏界面简洁,操作方便,符合游戏设计原则。

2. 实验分析(1)游戏设计方面:游戏规则简单易懂,游戏画面简洁,符合玩家需求。

(2)场景搭建方面:墙壁和食物的布局合理,有利于游戏进行。

(3)游戏逻辑实现方面:蛇头移动、吃到食物、撞墙等逻辑实现正确,游戏运行稳定。

数字游戏实验报告

数字游戏实验报告

一、实验目的本次实验旨在通过编写数字游戏程序,掌握Java编程语言的基本语法和面向对象编程思想,提高编程能力,同时锻炼逻辑思维和调试能力。

通过实验,加深对Java语言的理解,培养良好的编程习惯。

二、实验内容本次实验设计一款数字猜谜游戏,游戏规则如下:1. 系统随机生成一个1-100之间的整数作为谜底。

2. 玩家输入一个数字,系统判断该数字与谜底的大小关系。

3. 系统给出提示,告知玩家输入的数字是大了、小了还是猜中了。

4. 玩家继续猜测,直到猜中谜底为止。

5. 猜中谜底后,显示玩家猜测的次数,并询问是否继续游戏。

三、实验环境1. 软件:JDK 1.8,Eclipse IDE2. 操作系统:Windows 10四、实验步骤1. 创建一个名为“DigitalGame”的Java项目,并在项目中创建一个名为“Main”的类。

2. 在“Main”类中,编写以下代码:```javaimport java.util.Random;import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);Random random = new Random();int secretNumber = random.nextInt(100) + 1; // 生成1-100之间的随机数int guessNumber;int count = 0;while (true) {System.out.println("请输入一个1-100之间的数字:");guessNumber = scanner.nextInt();count++;if (guessNumber > secretNumber) {System.out.println("大了,再试一次!");} else if (guessNumber < secretNumber) {System.out.println("小了,再试一次!");} else {System.out.println("恭喜你,猜对了!你共猜了" + count + "次。

学生游戏实验报告

学生游戏实验报告

实验名称:学生游戏设计与开发实验实验目的:1. 培养学生对游戏设计与开发的基本概念和技能的理解。

2. 提高学生的创新能力和团队协作能力。

3. 掌握游戏开发的基本流程,包括需求分析、设计、编程、测试和发布。

实验时间:2023年3月1日至2023年5月31日实验地点:学校计算机实验室实验对象:计算机科学与技术专业学生实验内容:本次实验主要围绕一款简单休闲游戏的开发进行,包括以下步骤:一、需求分析1. 确定游戏类型:休闲益智类2. 确定游戏目标:锻炼玩家的逻辑思维能力和反应速度3. 确定游戏玩法:玩家通过操作角色,完成各种关卡任务,解锁新的关卡二、游戏设计1. 游戏角色设计:设计一个可爱的小动物作为主角2. 场景设计:设计多个关卡,每个关卡都有不同的背景和障碍3. 规则设计:设定游戏规则,如时间限制、道具使用等4. 界面设计:设计简洁明了的游戏界面,包括菜单、关卡选择、得分显示等三、编程实现1. 使用Unity3D引擎进行游戏开发2. 编写脚本,实现角色移动、碰撞检测、关卡切换等功能3. 设计游戏音效和背景音乐,增强游戏体验四、测试与优化1. 进行游戏测试,确保游戏功能正常运行2. 修复游戏中出现的bug,优化游戏性能3. 收集玩家反馈,对游戏进行改进实验过程:1. 实验初期,学生分组,每组5人,分别担任策划、设计师、程序员、美工和测试员等角色。

2. 学生根据需求分析阶段确定的游戏类型和玩法,进行详细的游戏设计。

3. 设计师负责绘制游戏场景和角色形象,美工负责制作游戏UI界面和动画。

4. 程序员根据设计文档,编写游戏脚本,实现游戏功能。

5. 测试员对游戏进行测试,找出并修复bug。

6. 整个过程中,学生需定期进行小组讨论,分享各自的工作进展和遇到的问题,共同解决困难。

实验结果:1. 成功开发出一款简单休闲游戏,实现了需求分析阶段的目标。

2. 学生掌握了游戏开发的基本流程,提高了团队协作能力和沟通能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

游戏设计目录第一章引言 (5)第二章需求分析 (8)2.1 系统开发目标 (8)2.2 系统需求分析 (8)2.2.1 业务需求分析 (8)2.2.2 用户需求分析 (9)2.2.3 功能需求分析 (9)第三章系统概要设计 (10)3.1 背景故事 (10)3.2游戏程序流程设计 (11)图3.2 游戏程序流程图 (12)第四章系统详细设计 (12)4.1画面和切换 (12)4.2 定义游戏世界 (14)4.3 系统功能模块 (16)4.4 储存素材 (17)4.5游戏界面 (18)4.6 分数榜设定 (19)4.7游戏总控制 (21)4.8 游戏设置 (22)第五章软件运行与测试 (22)5.1系统测试 (22)5.1.1 游戏页面显示 (22)5.1.2 移动主角测试 (23)5.1.3 主角碰到金币测试 (23)5.1.4 判定结束测试 (23)5.1.5 暂停测试 (23)5.1.6 恢复测试 (23)5.1.7 压力测试 (23)5.2 结果分析 (24)第六章结论 (24)第一章引言安卓游戏是运行在安卓系统平台的游戏,随着移动终端设备的发展,安卓游戏不但可以运行于智能手机,也可以运行在平板电脑上。

安卓游戏的系统架构和其它操作系统一样,采用了分层的架构。

从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。

Android是以Linux为核心的手机操作平台,作为一款开放式的操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统。

Android开放的平台允许任何移动终端厂商加入到Android联盟中来。

显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,最大的受益正是丰富的软件资源。

开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。

SDK:(software development kit)软件开发工具包。

被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。

Android SDK 指的是Android专属的软件开发工具包。

libgdx是一个跨平台的2D/3D的游戏开发框架,它由Java/C/C++语言编写而成。

ibgdx兼容大多数微机平台(标准JavaSE实现,能运行在Mac、Linux、Windows等系统,最近加入了对html5的支持)与Android平台(Android1.5以上即可使用,Android2.1以上可满功率发挥)。

Libgdx以native方式自带图像解码器,通过其提供的Pixmap可以对指定图像进行像素级渲染操作,从而不依赖Android的Bitmap加载处理图像,可以支持png、jpg、bmp,最近的两个版本中加入了对gif图片的支持.Libgdx由audio、files、graphics、math、physics、scenes、utils这些主要类库所组成,它们分别对应了Libgdx中的音频操作,文件读取,2D/3D渲染,Libgdx绘图相关运算,Box2D封装,2D/3D游戏组件(3D部分目前无组件),以及Libgdx内置工具类。

Gdx是Libgdx类库运行的核心所在,不单运行Graphics、Input、Files、Audio、AndroidApplication等Libgdx关键部分,所必需的实例会在Libgdx初始化时注入Gdx中对应的graphics、input、files、audio、app等静态变量里面,就连Libgdx对OpenGL 接口(或OpenGLES,视Libgdx运行平台而定,以下统称OpenGL)的GL10、GL11、GL20、GLCommon等封装类也会在Graphics 实例化时分别注入到gl10、gl11、gl20、gl这四个同样位于Gdx的静态变量当中。

第二章需求分析这是一款跳跃型的游戏,主人物会一直往上跳,我们只需控制左右移动让其踩在适当的跳台上即可继续的往上跳,最终加到的金币越多,同时要避开飞在空中的蜜蜂,直到到达最顶部的城堡,才进入下一关。

2.1 系统开发目标采用基于Android的Java编程技术,以及用Libgdx框架的相关技术开发出界面简洁清新,易操作,细节精致,设置齐全的SupperJumper游戏。

2.2 系统需求分析2.2.1 业务需求分析总所周知,SupperJumper是一款经典不过时的游戏,它无论在电脑,小霸王,手机都有它的身影,即使现在市场上各种游戏百花齐放,各种各样,但是SupperJumper依然能够占有一席之地,其市场还是很大的.这是由于它的特殊在于它能吸引人更深入,简单上手,该游戏的优势在于它的简单易行,不论是小游戏机,还是手机,都能很快顺利的运行.2.2.2 用户需求分析游戏设计出来后,其质量还是要由用户来评判的,在游戏为用户所用时,用户也对游戏有自己的期望和要求。

(1) 简单易学每个人的时间都是宝贵的,用户不愿意花一大堆时间去学习如何玩意个游戏,因此游戏必须很容易上手,要求界面简洁明了,否则太复杂难懂的话会让很多客户离去。

(2) 运行稳定一个游戏如果设计出来却不能保证其稳定性,那么就可能使游戏无法正常运行。

如果用户正在游戏突然软件崩溃了,无疑会让用户感到烦躁,从而把软件给卸载了,这样也会失去很多用户。

(3) 操作简便用户之所以选择SupperJumper,就是由于其快捷简便性,所以我们要让用户玩的舒心则必然要设计出一套操作简便的系统。

2.2.3 功能需求分析本项目是一个运行在安卓手机上的游戏,我们初步设定本游戏具有以下几个功能。

•游戏的主角不断向上跳跃,从一个平台跳到另一平台。

游戏世界在垂直方向跨了多个画面。

•通过左右倾斜屏幕来控制水平移动。

•当游戏主角离开水平屏幕边界时,它将从屏幕相反的一边重新进入。

•平台可以静止或者水平移动。

•有些平台在主角撞上时会随机地变得粉碎。

•在向上的路上,主角可以收集物品来获得分数。

•除了钱币,在一些平台上会有弹簧,它们可以使主角跳得更高。

•邪恶的力量充满了游戏世界,它们水平移动。

当碰上它们时,主角将死亡并且游戏结束。

•当主角掉落到屏幕的底部边缘时,游戏也将结束。

•在关卡的顶部会有一些目标,当主角碰上目标,新的关卡将开始。

•当游戏结束后,显示玩家在游戏中所获得的分数。

第三章系统概要设计3.1 背景故事游戏的主角得了慢性跳跃症。

他每次接触到地面都必须进行跳跃。

更糟的是,他深爱的公主(不给她取名字了)被会飞行的松鼠杀手组成的邪恶军队绑架,关在天上的一个城堡中。

在这种情况下,主角的病症反而对拯救公主有所帮助。

他开始寻觅心爱的人,与邪恶的松鼠军队战斗。

图3.1 初始的游戏机制实物模型,显示了主角、平台、钱币、邪恶势力和关卡顶部的目标3.2游戏程序流程设计本游戏程序流程图如图3.2所示。

图3.2 游戏程序流程图第四章系统详细设计4.1画面和切换•有一个带标识的主画面;有PLAY、HIGHSCORES和HELP 菜单项;并有一个按键来控制声音的开启和关闭。

•有一个游戏画面来询问玩家是否准备好控制运行、暂停、结束游戏和下一关卡的状态。

比起Mr. Nom,这里只是新增了画面的下一关卡状态,它将在主角碰到城堡时触发。

这时新的关卡生成,并且主角将重新从世界的底部开始并保持他的分数。

•有一个高分画面用来显示玩家最高的5个分数。

•有一个帮助画面来说明游戏机制和玩家的目标,此处省略了玩家如何进行控制的描述。

图4.1 Super Jumper的所有画面和切换4.2 定义游戏世界在世界空间中按物理规律定义了对象,其边界形状和位置的度量单位是米,速度的度量单位是米/秒。

但对象的图像表示使用像素定义,因此不得不做一些映射。

解决这个问题的方法是首先针对图像资源定义目标分辨率。

与Mr. Nom一样,此处使用的目标分辨率是320×480像素(纵横比是1.5)。

之所以使用这个目标分辨率,是因为这是最低的可行的分辨率,但是如果游戏专门针对平板电脑,则可以使用800×1 280像素这样的分辨率,或者这两种分辨率之间的一种分辨率,例如480×800像素(典型的Android手机)。

不管目标分辨率如何,其原理是相同的。

接下来在像素和世界空间中的米之间建立对应关系。

图3.1中的实物模型显示了不同对象使用的画面空间的大小以及它们间的相对比例。

对于2D游戏,此处推荐将32像素映射为1米。

那么现在在实物模型上覆盖一个网格,网格的尺寸是320×380像素,每个单元格大小是32×32像素。

在世界空间中,单元格映射为1×1米的大小。

图4.2显示的是实物模型和网格。

图4.2覆盖网格的实物模型。

每个单元格是32×32像素,对应游戏世界的1×1米•Bob是0.8×0.8米;它并不完全占用一个单元格。

•平台是2×0.5米,水平占据两个单元格,垂直占据半个单元格。

•钱币是0.8×0.5米。

它几乎垂直占据一个单元格,水平占据半个单元格。

•弹簧是0.5×0.5米,在两个方向上各占据半个单元格。

实际上弹簧垂直方向比水平方向要稍长一点。

它的边界形状是正方形,因此碰撞测试不是十分严格。

•松鼠是1×0.8米。

•城堡是0.8×0.8米。

由这些尺寸可以得到用于碰撞检测的对象的边界矩形的尺寸。

它们的大小可以根据游戏对这些值的使用方式进行调整。

由于当主角出了屏幕底部边缘时将死亡,这样照相机也将在游戏机制中扮演角色。

虽然我们使用照相机进行渲染并且当主角跳起时也向上移动它,但在世界的模拟类中并不使用它,而记录到目前为止主角的最高y坐标。

如果他低于这个值与视锥体一半高度的差值,那么就认为它离开了屏幕。

由于需要根据视锥的高度来决定主角的生死,因此并不能够使模型(世界模拟类)和视图之间完全独立,对此是可以容忍的。

4.3 系统功能模块本系统一共有23个类文件,java源文件及其功能如表4-1所示:表4-1 java源文件及其功能图4.4 储存素材在本游戏会用到一些图片和音效素材,如图4.2所示,Assets 类的实际作用就是用静态变量把这些个要用到的图片,音效文件保存下来,放到内存中(从Asset文件夹中加载的资料文件).之后就可以在代码中方便的使用到这些资源文件,比如game.getGraphics().drawPixmap(Assets.background, 0, 0)。

相关文档
最新文档