- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种基于Unity人机对战游戏设计与实现
一种基于Unity的人机对战游戏的设计与实现
摘要:随着社会科技水平和经济水平的迅速发展,游戏逐步成为人们享受生活娱乐的一种流行的方式,Unity3D作为一款虚拟3D开发的软件正在逐步升温,他以其跨平台的优势,良好的界面环境,操作要求不高,强大的功能设计渐渐的被广大虚拟现实的设计者们所使用。
本文主要是设计一款能够在手机上操作的休闲类射击游戏,功能模块分为:敌机的生成与销毁模块,子弹的对象池,以及子弹与敌机的碰撞检测模块,还有最后的结束界面,用本地保存历史最高的分数。
关键词:Unity3D;射击游戏;安卓
就目前的游戏市场而已,很多人对unity3d游戏偏爱有佳,从事unity3d游戏开发前景广阔。在本次的毕业设计,用户能够在手机上通过自身的单手触屏的操作,享受游戏带来的快乐。而通过本次的射击游戏的开发,让我对与大型游戏的制作流程有了一个更加深入的了解,并且提高的我逻辑思维能力,代码能力,让我受益匪浅。
一、游戏的模块分析
新课程理念的核心在于充分发挥学生的思维能力,培养学生多元化的学习能力,进而实现国家人才培养的基本目标。新课程面对的一个重要问题就是如何提高课堂教学效益最大化,即初中化学教师应如何改善自身的教学方式,提高化学教学的有效性,促使初中化学教学能够达到预想的教学效果,实现现代化人才培养的宏伟目标。
(一)游戏主线模块
游戏中共有三种等级的敌机,小型敌机生命值和分值最低,移动速度最快,出现频率最高,中型敌机生命值和分值略多于小型敌机,移动速度略低于小型敌机,出现频率略高于小型敌机,大型敌机生命值和分值最高,移动速度最慢,属于BOSS,当只有消灭数量的敌机,达到一定分数的时候才会出现。敌机生命值耗尽则爆炸,飞出边界自动销毁。而玩家拥有主武器和副武器,在得到子弹奖励物品后,会在一定时间增强火力,玩家受到敌机碰撞会损失生命值,奖励物品同样在飞出边界后,或者过段时间后会自动销毁,敌机无法获得奖励物品,玩家每消灭一个敌机得到相应的分数,生命值耗尽则游戏结束如果和敌机发生碰撞或者与敌机的子弹发生碰撞,血量就会变少,当消灭一个敌机时,游戏右上方的分数会增加,敌机会有销毁的动画。由于本次采用是无尽深渊模式,就是一直刷怪,所以关数只有一关。同时,对于游戏的界面进行一些处理,要有进入游戏后的玩家角色界面,如血?l,分数等,还需要结束游戏界面。
(二)游戏奖励物品模块
游戏中有多种奖励物品,为子弹奖励,通过一个脚本控制,Inspector属性面板中给定,由生成器根据不同频率周期控制生成,生成的地点也是随机的,奖励物品飞出边界后自动销毁,碰撞到玩家战机,则由玩家战机上面的脚本判断奖励类型,同时,奖励物品消失。奖励物品和敌机没有碰撞检测,当奖励物品和敌机位置重叠,奖励物品渲染层级在敌机上层,优先显示,不会被敌机遮挡
(三)敌机模块
游戏中有三种敌机,小型、中型和大型,三种类型的敌机都有同一个脚本控制,生命值(hp)、速度(speed)、分值,3个属性为公共变量(public),直接在Inspector属性面板中分别修改三种敌机的预制件(prefab)的属性,生成的敌机就拥有不同的属性。敌机的生成通过生成器(spawn)控制,生成器的脚本通过不同的频率控制生成器随机生成敌机,当然,敌机我也是为了重复利用,采用了对象池的技术,通过生成链表和死亡链表来重复使用。
二、游戏的实现
(一)主角飞机的移动
在本款游戏中,主要是在安卓端使用,所以主要是用在手机拖拽,所以调用了OnMouseDrag函数,并且要将鼠标点击的屏幕坐标转换为世界坐标来计算,只能限定在屏幕内拖动不能拖到屏幕外侧。
(二)主角的碰撞检测
碰撞检测的触发条件是,两个物体必须要有Box Collider或者Charater Controller,且至少一个Rigidbody组件。而在本次的游戏设计中,除了在主角物体的Inspector面板中的添加的Box Collider2D组件之外,还应该给主角添加Rigidbody2D,Rigidbody2D是刚体组件,使物体具有物理属性,将其中的Gravity Scale设置为0,这样物体不会受到重力影响,不会掉落,Box Collider2D是物体在2D环境中的碰撞体,可以用来检测是否发生碰撞,调整Box Collider2D的大小刚好包围飞机,勾选其中的Is Trigger,使其进行触发检测,但并不会产生物理碰撞效果。同时,将player的tag设置成为Player,同理,后面提到的子弹,敌机,奖励物品都会有Tag,以及Box Colloder2D及Rigidbody2D,是为了检测两者直接的碰撞检测,那么主角就会有两者情况,第一种是碰撞到
文档评论(0)