独立游戏开发(五)-- 控制角色在范围内移动

本文介绍了在游戏开发中如何实现主角的动态移动。通过设置初始速度、加速度和最高速度,使得主角的移动更符合真实感。开发者可以直接在scriptobject中调整参数观察效果。代码示例展示了如何根据加速度和时间更新主角位置,并限制在游戏范围内移动。
摘要由CSDN通过智能技术生成

传送门:独立游戏开发--索引

今天主要来实现主角的移动吧,废话不多说,先上效果:

我先设置了一个大概的游戏范围,然后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;

传送门:独立游戏开发--索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值