设置x方向线速度为负值

问题描述 投票:0回答:1


尝试在我的游戏中制作子弹对象。
这是我的代码:

CircleShape circleShape = new CircleShape();
FixtureDef ballFix = new FixtureDef();
ballFix.shape = circleShape;

Body ball = PhysicsFactory.createCircleBody(getPhysicsWorld(), x, y, 0.2f, BodyType.DynamicBody, ballFix);
ball.setLinearVelocity(5f, 5f);

无论我如何尝试,我都无法向负x方向“发射子弹”,即使我将x方向更改为负方向!
为了更好地可视化,我制作了一张图片:
bullet direction

:)

我做错了什么?

andengine
1个回答
0
投票

我知道这已经有 9 年多了,但我遇到了同样的问题,并且在网上找不到任何与此类似的问题。

在我的情况下,我在与角色控制器相同的位置生成子弹。这导致它与我角色的碰撞箱发生碰撞。

在您的情况下,您可以修改此代码,以在与您射击子弹的方向相同的方向上有一点偏移。

CircleShape circleShape = new CircleShape();
FixtureDef ballFix = new FixtureDef();
ballFix.shape = circleShape;

Body ball = PhysicsFactory.createCircleBody(getPhysicsWorld(), x + 1f, y + 1f, 0.2f, 
                                            // Or instead of (x + 1f, y + 1f) you could use
                                            // (x + viewDirection.x * modifier, y + viewDirection.y * modifier)
                                            BodyType.DynamicBody, ballFix);
ball.setLinearVelocity(5f, 5f);
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.