SpriteBatch.SetProjectionMatrix(cam.combined)使Spritebatch不绘制块,我的角色但相机移动工作,但如果我不使用这行代码,一切都被绘制,但相机不工作?有没有人知道解决方案,因为如果根本看不到。
编辑:很抱歉第一篇帖子很凌乱
下面是一段麻烦的代码:
public void render()
{
cam.update();
spriteBatch.setProjectionMatrix(cam.combined);
spriteBatch.begin();
drawBlocks();
drawBob();
spriteBatch.end();
cam.position.x = world.bob.GetPosition().x;
cam.update();
drawCollisionBlocks();
if(debug)
drawDebug();
}发布于 2013-06-03 18:41:25
我找到了解决方案,但对于将来可能遇到这种问题的人来说,问题出在我绘制纹理的绘制方法中:
代码:
spriteBatch.draw(bobFrame, bob.GetPosition().x * PPuX, bob.GetPosition().y*PPuY ,Bob.SIZE*PPuX , Bob.SIZE*PPuY );PPuX和PPuY是int类型,用于不同的屏幕大小,这在我设置投影矩阵时弄乱了spriteBatch
发布于 2013-05-30 21:30:28
spriteBatch.setProjectionMatrix(cam.combined)允许spriteBatch使用由cam指定的坐标系,而不是默认坐标系。这是因为两者的坐标系不同,cam.combined将为您计算。
发布于 2014-12-25 07:43:10
我相信你实际上是在绘制精灵,但是你没有看到它们,因为你的相机视口没有设置(即。您正在查看错误的坐标区域)。
添加
cam.setToOrtho(false); //true to invert y axis“使用适合屏幕分辨率的视口将此相机设置为正交投影,视口居中(Gdx.graphics.getWidth()/2,Gdx.graphics.getHeight()/2),y轴向上或向下指向。”
Link to JavaDOC here
https://stackoverflow.com/questions/16825160
复制相似问题