如何解决玩家掉落系统基本上是重力
在现实世界中,重力会随着时间的推移以一定的速度(每秒9.8米 )增加一定的下降速度。您可以通过以下方式模拟这种情况:给玩家一个垂直速度(当他们跳下或掉下平台时),然后每次在主游戏循环中从该值中减去一个恒定值,以便他们随时间加速。您需要对此(终端速度)设置最大限制,否则当它们掉落很长时,它们可能会很快达到惊人的速度。伪代码如下所示:
const GraviTY = 10;
const TERMINAL_VELociTY = 300;
object Player
{
int vertical_speed = 0;
int vertical_position;
function fall ()
{
this.vertical_speed = this.vertical_speed + GraviTY;
if (this.vertical_speed > TERMINAL_VELociTY)
{
this.vertical_speed = TERMINAL_VELociTY;
}
this.vertical_position = this.vertical_position - this.vertical_speed;
}
}
: 加速度是指速度随时间的变化,以每秒米/秒表示。每秒9.8米/秒表示一秒钟后静止的物体将加速到足以以9.8 m / s的速度行进。2秒后,它将达到19.6 m / s的速度。3秒后,它将达到29.4 m / s的速度,依此类推。
老实说,我不相信我什至不必解释。
解决方法
我正在制作类似于Doodle
Jump的游戏,以使您的玩家尽可能高。现在,我让播放器工作并移动。但是,问题是,我没有重力,或者没有什么会使玩家再次跌倒在地。你们有这样做的想法吗?我试图让玩家一直受到持续的压力,但始终不被压下,但它并不流畅,而且也不像真正的摔倒。在制作这种降低播放器的系统方面,我可以寻求帮助吗?
编辑:
GRAVITY = 10;
TERMINAL_VELOCITY = 300;
vertical_speed = 0;
public void fall(){
this.vertical_speed = this.vertical_speed + GRAVITY;
if(this.vertical_speed > TERMINAL_VELOCITY){
this.vertical_speed = TERMINAL_VELOCITY;
}
this.y = this.y - this.vertical_speed;
}
我做到了,但没有成功,却将我的玩家高高举起。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。