gpt4 book ai didi

C# XNA Box2d : ApplyImpulse() acts surprisingly

转载 作者:太空宇宙 更新时间:2023-11-03 14:32:33 26 4
gpt4 key购买 nike

我正在尝试移动一个 body :

if (ks.IsKeyDown(Keys.Up)) {
rocket.ApplyImpulse(new Box2DX.Common.Vec2(0, 30f), rocket.GetPosition());
}

奇怪的是, body 只有在释放键时才会移动。为什么是这样?我一直在看 manual但无法弄清楚。

当我删除条件,并在 Step() 中调用 applyImpulse() 时,火箭会持续显示推进器的动画,但实际上从未移动过。 (就好像我一直按住向上键一样。)

看起来我真正需要的是更好地理解 applyImpulse() 的第一个参数的作用:

new Box2DX.Common.Vec2(0, 30f)

向量中的两个值有什么意义?

更新 这样效果更好:

rocket.ApplyImpulse(new Box2DX.Common.Vec2(0, -1), rocket.GetPosition());

看起来如果力矢量中的第二个值为负,则物体会在屏幕上上升。以前,施加的冲动只是将它撞到地板上。当我松开琴键时,如果冲动足够强,它有时会弹回来。

最佳答案

关于您的更新:在 XNA 中,根据您放置相机的方式,负 Y 向上。如果你想让火箭上升,你必须在那个方向上施加一个力。

关于C# XNA Box2d : ApplyImpulse() acts surprisingly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2258911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com