首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Libgdx SpriteBatch.SetProjectionMatrix使spritebatch不能绘制

Libgdx SpriteBatch.SetProjectionMatrix使spritebatch不能绘制
EN

Stack Overflow用户
提问于 2013-05-30 06:46:13
回答 3查看 5.5K关注 0票数 2

SpriteBatch.SetProjectionMatrix(cam.combined)使Spritebatch不绘制块,我的角色但相机移动工作,但如果我不使用这行代码,一切都被绘制,但相机不工作?有没有人知道解决方案,因为如果根本看不到。

编辑:很抱歉第一篇帖子很凌乱

下面是一段麻烦的代码:

代码语言:javascript
复制
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();
    }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-03 18:41:25

我找到了解决方案,但对于将来可能遇到这种问题的人来说,问题出在我绘制纹理的绘制方法中:

代码:

代码语言:javascript
复制
 spriteBatch.draw(bobFrame, bob.GetPosition().x * PPuX, bob.GetPosition().y*PPuY ,Bob.SIZE*PPuX , Bob.SIZE*PPuY );

PPuX和PPuY是int类型,用于不同的屏幕大小,这在我设置投影矩阵时弄乱了spriteBatch

票数 3
EN

Stack Overflow用户

发布于 2013-05-30 21:30:28

spriteBatch.setProjectionMatrix(cam.combined)允许spriteBatch使用由cam指定的坐标系,而不是默认坐标系。这是因为两者的坐标系不同,cam.combined将为您计算。

票数 0
EN

Stack Overflow用户

发布于 2014-12-25 07:43:10

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

添加

代码语言:javascript
复制
cam.setToOrtho(false); //true to invert y axis

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

Link to JavaDOC here

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16825160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档