我使用当前的鼠标位置来瞄准玩家精灵,但我没有得到最好的结果。我希望我的精灵在我的光标在屏幕上的任何地方指向方向。这是我想要得到的结果。 (当我移动鼠标喷射缓缓转动)雪碧旋转不正常工作LibGDX
但是,这是我所得到的:1)当我的鼠标位置y = 0喷气精灵旋转速度很慢(但轮换从未停止)
2)当我的Y =(屏幕高度)精灵旋转非常快(它也永远不会停止) 这里是我的代码:我的更新方法
public void update(float dt){
time += dt;
float yInput = (Gdx.graphics.getHeight() - Gdx.input.getY());
vec.set(Gdx.input.getX() - position.x, yInput - position.y).nor();
//position is a Vector2 update sprite coordinates
position.x += vec.x * 15f;
position.y += vec.y * 15f;
}
这是我的画法
public void draw(){
batch.begin();
sprite.setPosition(position.x - sprite.getWidth()/2, position.y - sprite.getHeight()/2);
float xInput = Gdx.input.getX();
float yInput = (Gdx.graphics.getHeight() - Gdx.input.getY());
float angle = MathUtils.radiansToDegrees * MathUtils.atan2(yInput - position.y, xInput - position.x);
if(angle < 0){
angle += 360;
}
sprite.rotate(angle);
sprite.draw(batch);
batch.end();
}
你是什么意思“没有得到最好的结果”? – grimrader22 2014-12-07 17:31:54
当我将鼠标的Y位置更改为顶部时,我的精灵旋转得非常快,而这绝对不是我想要的。 – David 2014-12-07 17:34:32