2

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();
    }
4

3 回答 3

3

我找到了解决方案,但是对于将来可能遇到此类问题的任何人,问题在于我正在绘制这样的纹理的绘制方法:

代码:

 spriteBatch.draw(bobFrame, bob.GetPosition().x * PPuX, bob.GetPosition().y*PPuY ,Bob.SIZE*PPuX , Bob.SIZE*PPuY );

PPuX,PPuY 是 int 类型,用于不同的屏幕尺寸,当我设置投影矩阵时,这会弄乱 spriteBatch

于 2013-06-03T10:41:24.917 回答
0

spriteBatch.setProjectionMatrix(cam.combined)让 spriteBatch 使用指定的坐标系而cam不是默认坐标系。这是因为两者的坐标系不同,并且cam.combined会为您计算。

于 2013-05-30T13:30:27.933 回答
0

我相信您实际上正在绘制精灵,但是您没有看到它们,因为您的相机视口未设置(即您正在查看错误的坐标区域)。

添加

cam.setToOrtho(false); //true to invert y axis

“使用适合屏幕分辨率的视口将此相机设置为正交投影,以 (Gdx.graphics.getWidth()/2, Gdx.graphics.getHeight()/2) 为中心,y 轴指向上方或下方。 "

在此处链接到 JavaDOC

于 2014-12-24T23:43:10.327 回答