libGDX Sprite无法渲染

时间:2014-01-28 06:37:36

标签: java libgdx

The full code is on GitHub

我很确定渲染的问题是在render()方法中的Pong.java(src / com / me / pong / Pong.java)中:

    @Override
    public void render() {
            update();

            Gdx.graphics.setTitle("Pong | " + (int)(1.0f/Gdx.graphics.getDeltaTime()) + " FPS" );

            Gdx.gl.glClearColor(1, 1, 1, 1);
            Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

            camera.update();
            batch.setProjectionMatrix(camera.combined);

            batch.begin();
            for(Entity e : entities) {
                    e.draw(batch);
            }
            batch.end();
    }

因为sprite中的Ball或加载的纹理似乎没有任何问题。

这也可能是由于Ball的定位开始,但我对此表示怀疑,因为这些点是正确的(在update()中,我打印x坐标sprite当它离开一边或另一边时,到目前为止我还没有看到意想不到的值。)

我已尝试在官方libGDX文档中找到更多信息,但无法找到任何内容,例如sprite与原始坐标的坐标系(它们似乎不同)。我也尝试过在其他StackOverflow线程e.g. this上提出的一些修正,但似乎没有任何改变程序的输出,至少不是表面上的。

主要问题是由于我正在尝试确定和修复某些未知原因而无法呈现Ball。我有一些想法,但我不知道从哪里开始。

如果需要发布其他代码段以便进行更好的分析,我们很乐意发布它们。

1 个答案:

答案 0 :(得分:2)

我看了一下代码。您创建以下凸轮: camera = new OrthographicCamera(1, h/w); 如果你看一下API,那么cam的构造函数会获取Viewport hight和Viewport的宽度。您设置了hight = 1with = Gdx.graphics.getWidth()/Gdx.graphics.getHight(); 然后将Ball的位置设为Gdx.graphics.getWidth() / 2, Gdx.graphics.getHight() / 2。由于您只查看从P1(0/0)P2(1/0.x) (depends on screenresolution)的坐标,因此无法看到您的对象,因此它超出了范围。将摄像机视口设置为80宽度和45高度(16/9)。然后你可以将你的对象放在你自己的世界坐标系中(40,22.5位于中间)。

相关问题