0
我想让我把它放在屏幕上的精灵,并拖动相机在世界上。但是精灵粘在相机上,当我拖动相机时,它仍然在屏幕的底部。Sprite粘贴到libgdx中的相机?
这不会发生在地图(.tmx文件)和渲染器上:摄像机可以拖动地图,而地图不会粘在摄像机上。 spriteBatch艰难,精灵停留在屏幕的底部。
这里是我的代码:
map = MyLoader.manager.get("data/mMap.tmx");
float unitScale = 1/64f;
renderer = new OrthogonalTiledMapRenderer(map, unitScale);
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
camera.update();
renderer.setView(camera);
renderer.render();//tilemap works fine
//sprite
//batchMap.setProjectionMatrix(camera.combined);//wrong
batchMap.begin();
if (scrFactoryMap.maps.size() > 0) {
scrFactoryMap.getMap(0).draw(batchMap);//sprite sticks to the camera
}
str = "string";
font.draw(batchMap, str, 50,50);//font sticks to the camera
batchMap.end();
}
private void slerpCamera(){
//...
camera.position.add(camX, camY, 0);
camera.update();
}
我认为这是一个技巧性的问题。评论清楚地表明这是“错误的”。它*不能*成为解决方案! :D – noone
确实,这是一种可能性:我认为他认为这是错误的,因为当使用ProjectionMatrix和他的相机在位置0,0时,它将看起来好像世界是否开始在屏幕中间。所以他认为这是错误的:但实际上他只需要移动相机。不是很好解释.. – Lestat
谢谢你,你说得对,它几乎工作,投影矩阵的问题是,我得到一个黑色的矩形,而不是我的精灵,它是在右上角,而没有它,精灵正如预期的那样,在左下角显示的很好。你会知道如何将它放回到图像的左下角(它可能是图像的背面,不知何故,设置从底部到顶部,从左到右,从前到后翻转) – Paul