libGDX 形状渲染器代码来链接移动对象



我正在尝试让一个简单的矩形在屏幕上移动。我已经定义了我的对象并隔离了更新和渲染的任务。我知道我必须在Gamerenderer中放一些东西,但不知道使用什么代码来引用我的对象。任何帮助将不胜感激。谢谢

我的对象:

package com.mygdx.gameobjects;
import com.badlogic.gdx.math.Rectangle;
public class Egg {
    private Rectangle rect;
    public Egg(){
        rect = new Rectangle(0, 0, 50, 50);
    }
    public void update(float delta) {
        rect.x++;
        if (rect.x > 137) {
            rect.x = 0;
        }
    }
    public Rectangle getRect() {
        return rect;
    }
}

我的游戏世界:

package com.mygdx.gameworld;
import com.badlogic.gdx.Gdx;
import com.mygdx.gameobjects.Egg;
public class GameWorld {
    Egg rect = new Egg();
    public void update(float delta) {
        Gdx.app.log("GameWorld", "update");
        rect.update(delta);
    }
    public Egg getRect() {
        return rect;
    }
}

游戏渲染器

package com.mygdx.gameworld;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.GL20;
import com.badlogic.gdx.graphics.OrthographicCamera;
import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
public class GameRenderer {
    private GameWorld myWorld;
    private OrthographicCamera cam;
    private ShapeRenderer shapeRenderer;
    public GameRenderer(GameWorld world) {
        myWorld = world;
        cam = new OrthographicCamera();
        cam.setToOrtho(true, 136, 204);
        shapeRenderer = new ShapeRenderer();
        shapeRenderer.setProjectionMatrix(cam.combined);
    }
    public void render() {
        Gdx.app.log("GameRenderer", "render");
        Gdx.gl.glClearColor(0, 1, 1, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
        shapeRenderer.begin(ShapeRenderer.ShapeType.Line);
        shapeRenderer.setColor(255 / 255.0f, 109 / 255.0f, 120 / 255.0f, 1);
        shapeRenderer.rect(xxxxxxxxxxxx); 
        shapeRenderer.end();
    }
}

我需要在括号之间放什么才能看到我的矩形,即 xxxxxx 应该用什么替换?

Put

Rectangle eggRect = myWorld.rect.getRect();

在上面的一行。这将获取对矩形的引用。然后将您的 xxxxx 替换为相关值:

(eggRect.x, eggRect.y, eggRect.width, eggRect.height)

该方法已重载,如果需要,是否还可以添加颜色等参数

最新更新