贪吃蛇—蓝鸥游戏/AR/VR在线公开课小项目Dome(一)
1、首先我们要分析一下贪吃蛇这个游戏的需求!
2、利用Unity的提供的素材,简单的模拟一下贪吃蛇这个游戏!
3、给蛇头添加一个刚体
4、给蛇头添加一个脚本,创建两个方法 Turn ();Move ();用脚本控制蛇头移动方向和用户键盘监听事件。
5、接下来请观看贪吃蛇—游戏/AR/VR在线公开课小项目Dome(二)
如果想要零基础学习游戏/AR/VR在线课程,欢迎到CSDN学院搜索“unity3D-游戏/AR/VR在线就业班”免费视频进行学习!
using UnityEngine;
using System.Collections;
//枚举表示蛇头移动的方向
public enum HeadDir{
Up,// 上
Down,//下
Left,//左
Right,//右
}
public class HeadCtrl : MonoBehaviour {
//移动速度,米/秒
public float speed;
//计时器用来记录移动的时间
private float _Timer=0f;
//蛇头当前移动的方向
private HeadDir _CurrentDir=HeadDir.Up;
//接下来蛇头移动的方向
private HeadDir _NextDir=HeadDir.Up;
private void Update()
{
Turn ();
Move ();
}
private void Turn(){
//监听用户按键事件W
if (Input.GetKey (KeyCode.W))
{
//设定接下来蛇头移动的方向
_NextDir= HeadDir.Up;
//检测按键是否有效
if(_CurrentDir==HeadDir.Down)
{
//如果按键无效,修正接下来移动的方向
_NextDir = _CurrentDir;
}
}
//监听用户按键事件S
if (Input.GetKey (KeyCode.S))
{
//设定接下来蛇头移动的方向
_NextDir =HeadDir.Down;
//检测按键是否有效
if(_CurrentDir==HeadDir.Up)
{
//如果按键无效,修正接下来移动的方向
_NextDir = _CurrentDir;
}
}
//监听用户按键事件A
if (Input.GetKey (KeyCode.A))
{
//设定接下来蛇头移动的方向
_NextDir =HeadDir.Left;
//检测按键是否有效
if(_CurrentDir==HeadDir.Right)
{
//如果按键无效,修正接下来移动的方向
_NextDir = _CurrentDir;
}
}
//监听用户按键事件D
if (Input.GetKey (KeyCode.D))
{
//设定接下来蛇头移动的方向
_NextDir = HeadDir.Right;
//检测按键是否有效
if(_CurrentDir==HeadDir.Left)
{
//如果按键无效,修正接下来移动的方向
_NextDir = _CurrentDir;
}
}
}
private void Move()
{
//将计时器累加时间增量
_Timer += Time.deltaTime;
//判断当前帧是否应该移动
if(_Timer>=(1/speed))
{
//向前移动一个单位
transform.Translate (Vector3.forward);
//重置计时器
_Timer=0f;
}
}
}