(Unity3D游戏开发之跑酷游戏项目讲解2.doc
文本预览下载声明
今天主题就是《Unity3D游戏开发之跑酷游戏项目讲解》。
?一、游戏策划
? ???游戏采用2D界面,角色从左到右奔跑,在路段中随机生成障碍物和金币,玩家需要使用跳跃功能躲开障碍物,在游戏中玩家收集的金币数目越多,奔跑的距离越长,玩家的得分就越高。我们最终实现的界面效果如图所示,首先我们来讲一下游戏的原理,我们这里这里采用的方法是路段固定,移动摄像机的方法。换句话说,当角色开始移动后,摄像机和场景跟随角色缓缓向右移动。当角色跑完每一个路段距离的2/3时,计算下一路段的位置,并在该位置生成一个新的路段,这样在游戏场景中可以产生无限远的路段,当某一路段离开摄像机视野时,立即将其销毁。于此同时,我们在每一个路段上随机产生障碍物和金币,然后对角色做碰撞检测即可。
? ? ? ? ?二、角色控制
? ? ?角色控制这里,我们只关注角色的状态,即角色是处于奔跑状态还是死亡状态。通过这一状态,我们针对角色采取不同的处理方式。如果角色处于奔跑状态,则更新角色位置、摄像机位置、背景位置,否则角色将在被障碍物撞到以后倒地死亡。我们来一起看下面的脚本:
[csharp]?view plaincopyprint?
using?UnityEngine;??
using?System.Collections;??
??
public?class?Player?:?MonoBehaviour?{??
??
????//定义角色移动速度??
????public?float?mMoveSpeed=2.5F;??
??
????//摄像机??
????private?Transform?mCamera;??
????//背景图片??
????private?Transform?mBackground;??
??
????//角色是否在奔跑??
????private?bool?isRuning=true;??
????//场景中路段总数目??
????private?int?mCount=1;??
??
????//路段预设??
????public?GameObject?CubeWay;??
??
????//死亡动画播放次数??
????private?int?DeathCount=0;??
??
????//收集的金币数目??
????private?int?mCoinCount=0;??
????public?int?CoinCount?{??
????????get?{??
????????????return?mCoinCount;??
????????}??
????}??
??
????//当前奔跑距离??
????private?int?mLength=0;??
????public?int?Length?{??
????????get?{??
????????????return?mLength;??
????????}??
????}??
??
????//当前得分??
????private?int?mGrade=0;??
????public?int?Grade?{??
????????get?{??
????????????return?mGrade;??
????????}??
????}??
??
????void?Start?()???
????{??
????????//获取相机??
????????mCamera=Camera.main.transform;??
????????//获取背景??
????????mBackground=GameObject.Find(Background).transform;??
????}??
??
????void?Update?()???
????{??
????????//如果角色处于奔跑状态则移动角色、相机和场景??
????????if(isRuning)??
????????{??
????????????Move();??
????????????CreateCubeWay();??
????????????Jump();??
????????????UpdateData();??
????????}else??
????????{??
????????????Death();??
????????}??
????}??
??
????///?summary??
????///?更新玩家的游戏数据??
????///?/summary??
????private?void?UpdateData()??
????{??
????????//计算奔跑距离??
????????mLength=(int)((transform.position.x+25)*25)
显示全部