【问题标题】:Libgdx render a new objectLibgdx 渲染一个新对象
【发布时间】:2015-07-20 00:07:33
【问题描述】:

我有 2 节课; A 和 B。

A 是字符类,它包含每个字符的详细信息(位置...) B 是获得 A 类并渲染的类。当我触摸屏幕时,我需要创建另一个对象。我明白了,该类似乎包含新值,但它没有渲染它们。

for (A a: aa) {
    shapeRenderer.begin(ShapeType.Filled);
    shapeRenderer.setColor(Color.RED);
        shapeRenderer.circle(a.getBoundingCircle().x, a.getBoundingCircle().y, a.getBoundingCircle().radius);
    shapeRenderer.end();
    }

【问题讨论】:

    标签: android libgdx rendering render


    【解决方案1】:

    建议使用最佳名称。 你确定 a.getBoundingCircle() 包含正确的数据,你确定 aa 中有对象 A 并且你的程序加入了 for 吗?

    我看起来不像

    【讨论】:

    • B 是包含我发布的代码的类。 aa 是一个静态列表,每次 A 构造函数运行时,它都会被添加到 aa(在 B 类中)
    【解决方案2】:

    好的,你的问题是新值没有被渲染。 两种选择: 您没有运行循环来渲染对象。 您的新值不在屏幕上。

    当您获得触摸事件的位置时,您获得的是 screenx 和 screeny,而不是游戏摄像机坐标,您需要使用 unproject 对其进行转换。 例如:

    Vector3 touchPos = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
    camera.unproject(touchPos);
    

    touchPos 现在在游戏坐标中。

    【讨论】:

    • 新对象的创建值与第一个对象相同
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-22
    相关资源
    最近更新 更多