【问题标题】:How to make a sprite move diagonally?如何使精灵沿对角线移动?
【发布时间】:2023-03-22 09:01:01
【问题描述】:

我有一个精灵需要跟随一个旋转的箭头精灵的命令,现在我只能让我的精灵向上、向下和向左、向右移动。对角线呢?我不知道该怎么做,精灵也需要始终向屏幕外移动。

编辑: 所以这就是我所做的:

Vector2 position=new Vector2();

public void update(){

//getAngle() is the return value from another class     
position.set(MathUtils.cosDeg(cannonObj.getAngle()),MathUtils.sinDeg(cannonObj.getAngle()));
    sprite.setPosition(position.x,position.y);
    }

发生的情况是,当我旋转箭头时,主精灵就像箭头一样移动(以圆周运动移动)。

//I also tried this
position.scl(2,2);
 or
position.translate(2,2);

【问题讨论】:

  • 发布您的捕获按键代码。

标签: java libgdx sprite diagonal


【解决方案1】:
sprite.x += sin(angle) * amount;
sprite.y += cos(angle) * amount;

我忘记了您是否必须以弧度或度数输入角度。不过,在 Java 中,您可以使用 Math 类进行计算。

【讨论】:

  • 对不起,我是 java 新手,但你想说的是我应该将 sin 和 cos 乘以箭头的角度?然后再乘以我要移动精灵的像素量..
  • 不,你取角度的 sin/cos,然后乘以数量。基本三角法
  • 取我的精灵或箭头精灵的角度的 sin/cos?
  • 如果精灵遵循箭头精灵的命令,那么角度的正弦/余弦
  • 在这些公式中使用的角度是指向右边的线与您希望它行进的方向之间的角度,逆时针。如果您知道以弧度为单位的角度,请使用MathUtils.cos()MathUtils.sin()。如果您知道角度的度数,请使用MathUtils.cosDeg()MathUtils.sinDeg()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 1970-01-01
相关资源
最近更新 更多