-1

我有一个代表方向和大小(长度)的线段,当我绘制线段时,它可以正常工作。值 getAimArmsRotation 是从另一个包含触摸板值的类中提取的。

if (player.getFacingRight()) {
        lOriginX = (player.getPosition().x + Player.SIZEw/2);
        lOriginY = (player.getPosition().y + Player.SIZEh/1.5f);
        //lEndX = lOriginX + (float)Math.cos((player.getAimArmsRotation())/57) * 15f;
        //lEndY = lOriginY + (float)Math.sin((player.getAimArmsRotation())/57) * 15f;
        laserO = new Vector2(lOriginX, lOriginY);
        laserE = new Vector2(lEndX, lEndY);

但是,如果我使用该计算中的向量或浮点数并将它们应用于模型的速度向量,它不会像我认为的那样沿着线段移动模型。

编辑:抱歉,当我创建问题时要附上这张照片。图 1 是我的线段的外观,当我将构成线段的速度值设置到我的对象时,它会沿图 2 所示的方向移动。 在此处输入图像描述

getAimArmsRotation() 只是一个使用另一个类中触摸板的值设置精灵旋转的方法。我认为这些值并不重要,因为这些浮点数是我用来为线段提供长度和方向的,我认为给对象一个 x 和 y 浮点数的速度会给它与线的方向相同?

4

1 回答 1

-1

谢谢你的DV,混蛋。

尝试沿所需路径发送对象时,我没有考虑对象的原点位置。我只使用 LineEnd 值,我需要给对象它的原点来正确计算轨迹或路径。

for (GameObject go: gObjects) {
            if (go.getType() == PROJECTILE_ID) {
        go.getVelocity().x = player.getLineEndX() - player.getLineOrgX();
        go.getVelocity().y = player.getLineEndY() - player.getLineOrgY();
        System.out.println(go.getVelocity().x);
        System.out.println(go.getVelocity().y);
            }
        }
于 2013-09-10T15:58:18.747 回答