传送门:独立游戏开发--索引
今天主要来实现主角的移动吧,废话不多说,先上效果:
我先设置了一个大概的游戏范围,然后player只能在游戏范围内移动。
在这里我们用了一个初始初度,加速度,最高速度的概念,让player移动更加真实。
上图可能看的不直观,上图是初始速度为2的效果。那我们再看看初始速度为0.1的一个效果:
可以很直观看到开始很慢,逐渐加速的一个过程。
同时也能看到scriptobject一个好处了,直接调整看效果。
实现部分如下,其实也很简单:
_playerSpeed = _playerStartSpeed + _accSpeed * _time;
_playerSpeed = _playerSpeed > _playerMaxSpeed ? _playerMaxSpeed : _playerSpeed;
// 当前位置,目标位置,以及根据加速度得到的一个当前速度
var position = _cameraTarget.position;
position += _playerSpeed * Time.deltaTime * dir;
position = new Vector3(Mathf.Clamp(position.x, -ConfigDefine.MapWidth / 2 + _playerRadius, ConfigDefine.MapWidth / 2 - _playerRadius), Mathf.Clamp(position.y, -ConfigDefine.MapHeight / 2 + _playerRadius, ConfigDefine.MapHeight / 2 - _playerRadius), 0);
_cameraTarget.position = position;
传送门:独立游戏开发--索引