36
软件开发与应用
Software Development And Application
电子技术与软件工程
Electronic Technology & Software Engineering
游戏虽然益处多但是游戏的开发却并不是那么容易,工作繁琐,门槛高等一系列问题阻碍着游戏的发展,而Unity3D 的出现大大改变了这一现状,大到大型3D 游戏,小到手机2D 小游戏都可以使用Unity 来开发,Unity 有着跨平台性,一次编码可在多个平台同时上线,操作简单,以及省时省力成为了许多开发商的最优选择。1 游戏界面设计1.1 游戏界面总体设计
游戏界面分为三类,开始界面,游戏中界面,和结束界面。界面的设计相对简单,重点放在游戏的内容,游戏界面流程图如图1所示。
1.2 游戏界面详细设计1.
2.1 开始界面的设计
游戏开始界面是一张比较炫酷的坦克大战海报,上面分布着两个按钮,一个是开始按钮,另一个是游戏规则介绍按钮,开始按钮点击后进入游戏界面,规则按钮点击后进入规则介绍界面。游戏介绍界面分布着三个按钮,和图文讲解,界面清晰内容一目了然,左右箭头则是四页规则翻页使用,右下角是一个返回按钮,点击可以返回游戏开始界面。Play 下的OnClick 及代码如图2所示。1.2.2 游戏中界面的设计
游戏中的界面设计主要说的是坦克身上的画布以及上面的内容。
首先在坦克上添加一个画布(Canvas ),然后在画布中添加三个silder 分别是HealthSlider ,AimSlider ,Flash ,分别是生命的显示,蓄力攻击箭头的显示和闪现技能的显示,每一个slider 都有FillArea 和Fill ,分别为填充的区域和填充的内容,生命的填充区域是一个圆环,填充内容是绿,攻击箭头的填充区域是长方形,填充内容就是箭头本身,闪现技能填充区域为正方形,填充内容为闪现技能本身。
Slider 中的value 是一个滑动条,改变其量可以改变填充物的填充程度,这就是实现生命显示、箭头显示和技能CD 显示的关键所在。当Value 为0时填充物为空,当Value 为1时填充物为满。
fill 中的image 下的image type 是控制填充物填充的方式,生命和技能填充的方式相同都是按照360旋转填充所以将fill method 选择为Redial360,而攻击蓄力的显示则不同是同一方向的出现和消失,所以选择的是sliced 。1.2.3 游戏结束界面的设计
结束界面制作的比较简单,使用的只是text 的显示和点击。当玩家一方的坦克被击中扣血死亡时,屏幕中央显示出图2-2-7的文字,并且Restart 是可以点击的,点击之后返回到开始界面,winner 后面的文字内容根据坦克的死亡而改变,Player1死亡则显示Winner :Player2,Player2死亡则显示Winner :Player1。将这些文字赋在相机上的原因也很简单,因为我们制作的相机是可以根据两坦克的距离改变视距,如果将文字放在其他地方则无法做到坦克死亡时文字显示在视野的正中央,从而影响我们的观察。2 游戏设计2.1 游戏场地设计
游戏场地鸟瞰图如图3所示,游戏场地内的物体用3dsMax 制
基于Unity3D 的游戏开发
陈阳
(南京大学金陵学院信息科学与工程学院 江苏省南京市 210089)
作后拖进Unity3d 内进行布局,制作场地的过程也是十分漫长,需要我们用3dsMax 一点点将场景中的物体制作出来并且做到符合实际,这样做出的游戏更加真实。当然这些物体制作出来时是没有颜的,就需要我们制作材质球为这些预制体上。
游戏网页界面设计场地内包含灯光,用于照亮整个场地,还有仙人掌、岩石、树、建筑、地板等物体,这些物体都是3dsM
ax 制作的,并用材质球赋了颜,且均添加了刚体组件,
使得坦克可以和这些障碍发生碰撞。
摘 要:本文介绍了游戏界面的设计及游戏场地、游戏视野、游戏主角的设计。关键词:界面设计;Unity3D;游戏开发
图1:游戏界面流程图
图
2:Play 下的OnClick 及代码
图3:游戏场地鸟瞰图
37
软件开发与应用
Software Development And Application
电子技术与软件工程
Electronic Technology & Software Engineering
场地还赋予了生成血包以及护盾的脚本,并将血包和护盾作为预制体赋值到脚本中。生成血包和护盾时,给予一定的力,使得他们在原地旋转起来便于观察也使得物体赋予了生命。2.2 游戏视野跟随设计
每一个游戏都有自己独特的视野角度,而我的这款坦克大战视野也比较独特,因为场地大小的缘故,如果将整个场地都放置在视野之中,场地中的物体会显示非常小,不利于观看和游戏,这就需要我们来控制相机的视距来做到当两位玩家操控坦克时,我们的视野也随之而改变。将玩家的坦克预制体赋予脚本
之上,用于监控坦克之间的距离来计算视距大小。当两坦克距离越远,相机视距离得也越远,坦克距离越近,相机视距离得也越近。当两坦克距离大于或者小于一定值时,相机视距便会固定不动。我还将游戏的背景音乐放置在相机之上,当游戏运行时背景音乐自动响起。2.3 游戏主角坦克设计2.3.1 主角移动设计
这便是本款游戏的两位主角,玩家1和玩家2,两个坦克的控制方式,攻击方式,以及血量的减少增加方式均是相同的,所以二者使用的是相同的脚本,用代码将坦克进行编号来区分二者。这样减少了代码的数量也减轻了机器运行的压力。坦克行驶和代码如图4所示。
2.3.2 主角攻击设计
主角的攻击方式分为两种,一种是普通攻击,一种是蓄力攻击普通攻击和蓄力攻击的区别在于两者的攻击距离不同,两种攻击都是一种抛物线的方式来击出,坦克炮口处有一个空物体45度斜向上,每次按下攻击按钮时子弹在这个空物体处生成并跟随物体45度向上倾斜,然后赋予子弹一个向前的力让子弹飞出,子弹受到重力的作用会形成一个抛物线的轨迹。2.3.3 主角的生命设计
坦克生命控制的脚本中,TankExplosion 是坦克被销毁时产生的爆炸特效,TankBreakAudio 是坦克被销毁时爆炸的音效。HpSilder 是血量圆环Fill 是圆环的图片。CureP 是时产生的特效预制体,moxinghudun 是护盾的预制体。
坦克的生命显示为一个圆环在坦克正下方,当坦克受到伤害后血量低于一定值时血条颜会发生相应改变,血量高于75%是呈现绿,表示坦克健康,当血量在75%-25%之间时颜变成黄,表示坦克血量较低,当血量低于25%时颜变为红,表示坦克处于危险中。如图5所示。
当坦克触碰到场地中产生的血包时会恢复一定量的生命值,并产生恢复生命特效。也会根据血量的值改变相应的颜。而当玩家触碰到护盾时则会为玩家产生一个可以保护坦克三次不受伤害的护盾,并且每次受到攻击,会减少一个护盾。护盾和血包都是随时、随地出现在场地中,并且一段时间未被坦克触碰会自动销毁。如图6、图7所示。2.3.4 主角技能设计
当游戏开始的时候,主角的主动技能闪现开始CD ,并在坦克一侧显示闪现技能的CD 效果,当闪现技能图标完全显示的时候表明技能已经CD 完成可以使用,使用闪现技能之后,坦克会往前位移一段距离并且可以穿越障碍,并在使用技能的位置生成一个闪光特效,然后重置CD 和技能图标。因为闪现技能的冷却时间比较长,所以释放的时机显得比较重要,闪现技能可以用来穿越障碍,比如被敌人追到死角的时候可以用闪现穿越障碍逃生。如图8所示。2.3.5 主角死亡设计
当坦克受到伤害,并且血量降低到0以下时,坦克死亡,并在原地生成一个爆炸特效和音效,并在此时取消相机的控制和坦克的控制,进入结束页面,结束页面显示着胜利的玩家以及一个重新开始的按钮,点击重新开始按钮后,进入新一轮的竞技中。3 结束语
因为多年对游戏的热爱,自身又是计算机专业,让我对这次的课题充满了想法,选择了许多人童年的回忆“坦克大战”。这次设
计我使用的是Unity 软件和C#语言,
通过学校教学与自我拓展摸索,在整个过程中锻炼了我自学的能力,也学到了新知识和新技术。让我一定程度的了解游戏开发的过程,和游戏开发的不容易,同时也明白了坚持的重要性。不管是一名学生还是一位社会人士,自学都是非常重要的一种技能,这次的游戏设计让我学习到了许多unity 的知识我相信在将来的工作中也会是一种有效的技能。
参考文献
[1]任建邦.基于Unity3D 的手机游戏客户端的设计与实现[D].
北京交通大学,2013.
[2]伍传敏,张帅,邱锦明.基于Unity3D 的FPS 游戏设计与开发
[J].三明学院学报,2012,29(2):35-40.
[3]李崴.中国动漫游戏产业发展现状与对策分析研究[J].南昌
教育学院学报,2011,026(004):191-192.
[4]张天雪.区域教育均衡发展:立场与路线[J].教育发展研
究,2013
[5]陈乐,汤龙梅,陈永瑞.基于Unity 的iPhone 游戏开发概要[J].
科技视界,2013,000(016):18.
[6]王树斌.浅析Unity3d 开发游戏流程及常用技术[J].电脑知
识与技术,2012,008(022):5351-5352.
[7]付国成.基于J2ME 的手机2D 动作类游戏引擎的设计与实现[D].
北京交通大学
,2014.作者简介
陈阳(1994-),男,福建省屏南县人。南京大学金陵学院信息科
学与工程学院计算机科学与技术专业本科在读。学号:**********
006。
图4:坦克行驶和代码
图5:血量改变
图6:恢复特效
图7:护盾
图8:技能展示
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论