Java Libgdx x和y差
在下面的图片中,你可以看到我在屏幕上画了一个黑色的圆圈,在代码中,我试图让黑色圆圈与清晰圆圈的坐标相匹配,清晰圆圈是我的物理身体,它完全工作 我的问题是,当我在地图上移动清晰的圆圈时,黑色的圆圈就停留在角落里。黑圈移动了一些像素,所以它的MMOVE看起来有点移动,但是非常小,我不知道为什么。谢谢Java Libgdx x和y差,java,libgdx,Java,Libgdx,在下面的图片中,你可以看到我在屏幕上画了一个黑色的圆圈,在代码中,我试图让黑色圆圈与清晰圆圈的坐标相匹配,清晰圆圈是我的物理身体,它完全工作 我的问题是,当我在地图上移动清晰的圆圈时,黑色的圆圈就停留在角落里。黑圈移动了一些像素,所以它的MMOVE看起来有点移动,但是非常小,我不知道为什么。谢谢 请试试这个: public class Character extends Sprite { public World world; public Body
请试试这个:
public class Character extends Sprite {
public World world;
public Body b2Body;
public float x;
public float y;
public Character(World world){
this.world = world;
defineMario();
}
public void update(float dt) {
//so the sprite and body will have the same center
setPosition(b2Body.getPosition().x-getWidth()/2, b2Body.getPosition().y- getHeight()/2 );
setCenterOrigin(); // to handle when body does a rotation
}
请在评论中告诉我它是否有效
祝您好运您将批处理的投影矩阵设置为用于绘制UI的UI摄影机,但在绘制游戏元素之前,您从未将其更改为
游戏摄影机
的投影。在game.batch.begin()之前代码>需要添加的行game.batch.setProjectionMatrix(gameCamera.combined)代码>
顺便说一句,Character扩展Sprite是没有意义的,因为您不使用Character来绘制任何东西,只用于跟踪位置。它仍然这样做。黑圈会移动,但会缩小,所以我认为这可能与此有关。仅供参考,这里有一个游戏开发人员堆栈交换站点:--您可能会在那里得到更好的响应。
public class Character extends Sprite {
public World world;
public Body b2Body;
public float x;
public float y;
public Character(World world){
this.world = world;
defineMario();
}
public void update(float dt) {
setPosition(b2Body.getPosition().x,b2Body.getPosition().y );
}
public class Character extends Sprite {
public World world;
public Body b2Body;
public float x;
public float y;
public Character(World world){
this.world = world;
defineMario();
}
public void update(float dt) {
//so the sprite and body will have the same center
setPosition(b2Body.getPosition().x-getWidth()/2, b2Body.getPosition().y- getHeight()/2 );
setCenterOrigin(); // to handle when body does a rotation
}