APP下载

基于Unity 3D 单机版拾金币游戏的设计与实现

2020-08-01

喀什大学学报 2020年3期
关键词:银币计分金币

(喀什大学 计算机科学与技术学院,新疆 喀什 844000)

0 引言

Unity 3D 是一款新型的功能强大、相对成熟的交互式游戏引擎[1],其具备简洁的图形化界面和完善的游戏引擎插件,有强大的UGUI和多平台、跨平台特性,其内置的Nvidia 公司的PhysX 物理引擎可模拟刚体碰撞、粒子模拟、重力等物理效果[2],使得对象物体具备质量、摩擦力等物理属性,提供给了游戏开发者一个可视化的编辑窗口.

1 基于Unity 3D 单机版的拾金币游戏实验设计

为增加单机版拾金币游戏的趣味性,本实验在传统的拾金币游戏基础上增加了银币预制体,设计并实现了在指定区域随机产生金币和银币、计分、碰撞时产生粒子功能这三个游戏效果.

(1)指定区域随机产生指定个数的金币、银币.为了避免玩家在没有开始游戏时和随机产生的游戏对象发生碰撞效果,在指定区域内随机生成玩家设置的金币、银币数量.

(2)计分功能.为了增加游戏的趣味性,玩家控制小球碰撞到金币、银币时,总分增加,血量增加;玩家控制小球碰撞到墙壁,总分减少,血量相应减少,累计减分到0 分,游戏停止并在当前场景显示“Game Over”.

(3)粒子功能.小球碰撞到金币、银币实现拾取,金币、银币消失的同时产生爆炸粒子效果.

2 基于Unity 3D 单机版的拾金币游戏实验实现

2.1 场景搭建

(1)搭建好实验中所需场景.创建四个cube,调整大小、位置并围成墙体,打组,设置tag 为qiang.创建一个Sphere 作为小球,调整到墙体右下角.再创建一个Sphere,调整Sphere 的大小、形状、颜色,设置tag 为GoldMoney,并拖放到prefabs 中命名为Golden Prefabs,Ctrl+d 复制一份,修改颜色,设置tag 为SilverMoney,命名为Silver prefabs.

(2)在当前主场景新建一个Cube 对象,用来限定游戏对象生成的区域并将创建游戏对象脚本CreatMoney 挂载到指定游戏对象生成的区域Cube 对象上,在Cube 对象的Inspector 视图中1中设置Sliver Prefabs、Golden Prefabs 为相应的预制体,输入初始金币、银币个数.

图1 Cube 对象的Inspector 视图

(3)主场景添加UGUI界面.Unity中的UGUI 系统容许用户快速直观地创建图形用户界面,利用UGUI 创建Canvas、Text、Image 控件来实现系统的计分功能,Slider 实现系统的血条效果[3]87-110.拾取金币、银币时,金币、银币消失,产生粒子爆炸效果,计分和血条量增加;碰撞到墙体时,计分和血条量减少.Text 中显示当前累计分值,当分值减少为0 时,显示“game over”.

2.2 实现效果脚本编写

2.2.1 在指定区域创建游戏对象

在Unity 3D 当中,为了避免资源的浪费,快速复制出反复使用的游戏对象,利用Clone 技术,在指定区域随机产生指定个数的金币、银币,并挂载到指定区域Cube 对象上.以产生金币为例,设置金币个数goldenMoneyCount 访问修饰符为public,可以实现在属性面板上输入指定随机产生的个数,编写产生金币脚本CreatMoney.cs,实现代码如下:

2.2.2 计分功能实现

玩家通过按取键盘上相应按钮来实现小球的向上、向下、向左、向右四个方向的移动操作,血条health 初始值设为100.此案例中小球运行时,碰撞到金币,碰撞一个金币总分加10分,碰撞到银币,碰撞一个银币总分加5 分,同时血条量增加相应分值;当小球运行碰撞到墙体时,碰撞一次墙体总分减10 分且血条量减少相应分值,当总分累计减少到0 分时,全局结束,游戏中止运行并在当前场景中显示“GameOver”.如图2 和图3 所示.

图2 游戏运行效果图

图3 游戏结束效果图

编写拾取金币脚本EatMoney.cs,挂载到小球Sphere 上,实现计分的部分代码如下:

2.2.3 粒子效果实现

Unity 3D 内嵌的Shuriken 粒子系统的模块化管理,个性化的粒子模块配合粒子曲线编辑器,使设计人员能方便高效地创作出各种缤纷复杂的粒子效果[3]113-125.为了实现拾取金币时金币产生的消失爆炸特效,在当前场景创建粒子对象Particl Systm,缩小半径,赋值为0.01,修改形状和设置生命周期速度,完成初始化的修改.在当前场景定义一个粒子游戏对象obj1.将此粒子对象修改为金币、银币的子对象,该实验中当父对象被销毁时,子物体也同时被销毁,增加了游戏视觉上的直观性.

将脚本添加到拾取金币脚本EatMoney.cs中,部分代码如下:

3 结语

本文应用Unity 3D 游戏引擎开发的单机版拾金币游戏,在传统经典拾金币游戏的基础上,增加了银币预制体,通过测试,实现了在指定区域随机产生金银币、UGUI 界面的计分和血条增减、拾取金币银币时产生粒子效果并爆炸消失等三个游戏效果,经测试达到了预期效果.

猜你喜欢

银币计分金币
哗啦啦,下金币啦
带定性判断的计分投票制及其公理刻画
水中的金币
大象法官分银币
引导素质教育的新高考计分模式构想:线性转化计分模式
面包里的银币
基于单片机的中国式摔跤比赛计分器开发设计
谁偷了我的金币
鉴定老银币的几种方法
找金币