【发布时间】:2018-06-30 12:37:53
【问题描述】:
不太确定如何表达,但假设你是一个球,正在四处弹跳和移动。它是一个平坦的表面,所以一切都很好。
现在介绍一些 45 度坡道。你直接跌倒并从它身上弹开。此刻,您可以立即向后移动,无论您多快击中它,也无论您以什么角度或速度行驶,因为推力的动量应该更难,因为它是在一个角度。有点像一个小的渐进动量,直到你达到0速度,然后你就可以正常移动了。
if (playerLeft)
{
float xVelocity = (playerBody.velocity.x > 0) ? playerBody.velocity.x - playerSpeed : -playerSpeed;
playerBody.velocity = new Vector3(xVelocity, playerBody.velocity.y, 0);
}
if (playerRight)
{
float xVelocity = (playerBody.velocity.x < 0) ? playerBody.velocity.x + playerSpeed : playerSpeed;
playerBody.velocity = new Vector3(xVelocity, playerBody.velocity.y, 0);
}
最初我只有 1 行,我将 x 速度设置为等于玩家速度,无论速度是 -1 还是 -50。你可以想象那看起来多么不切实际。
我尝试添加上面所做的速度。但是因为它的最小值只有 6 低于 0。它会在 2 或 3 帧内达到它的最大速度,这还不够渐进。
【问题讨论】: