java - 将 Java 的 HotSwap 功能与 libGDX 结合使用

标签 java intellij-idea libgdx hotswap

我使用以下代码创建了小测试,并尝试执行这些步骤来使用热插拔功能。

  1. 使用“调试”按钮运行程序
  2. 在渲染函数中创建一个断点,以暂停程序。
  3. 更改矩形宽度的值
  4. 编译程序
  5. 让 intelliJ 重新加载代码。

但这似乎并没有改变屏幕上矩形的大小。

public class HotSwapTest extends ApplicationAdapter {
    OrthographicCamera camera;
    ShapeRenderer shapeRenderer;

    private static final int SCREEN_WIDTH = 800;
    private static final int SCREEN_HEIGHT = 480;

    Rectangle rectangle;


    @Override
    public void create() {
        shapeRenderer = new ShapeRenderer();
        camera = new OrthographicCamera();
        camera.setToOrtho(false, SCREEN_WIDTH, SCREEN_HEIGHT);

        rectangle = new Rectangle();
        rectangle.x = SCREEN_WIDTH / 2 - 64 / 2;
        rectangle.y = 20;
        rectangle.width = 100;
        rectangle.height = 30;
    }

    @Override
    public void render() {
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

        shapeRenderer.setProjectionMatrix(camera.combined);
        shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
        shapeRenderer.setColor(1, 1, 0, 1);
        shapeRenderer.rect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
        shapeRenderer.end();

        camera.update(); // only if we're moving the screen though
    }
}

最佳答案

输入此内容后意识到我应该更改渲染函数中矩形的宽度。因为创建函数不会再次运行。

下面的代码可以正常工作。

public void render() {
    Gdx.gl.glClearColor(0, 0, 0, 1);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    rectangle.width = 5; // Change this line while debugging.
    rectangle.height = 10;

    shapeRenderer.setProjectionMatrix(camera.combined);
    shapeRenderer.begin(ShapeRenderer.ShapeType.Filled);
    shapeRenderer.setColor(1, 1, 0, 1);
    shapeRenderer.rect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
    shapeRenderer.end();

    camera.update(); // only if we're moving the screen though
}

关于java - 将 Java 的 HotSwap 功能与 libGDX 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20572266/

相关文章:

intellij-idea - 如何在 IntelliJ IDEA 15 中的 gradle 项目上启用 Infinitest?

java - 将鼠标悬停在文本上不改变颜色 - libgdx

java - 在父类(super class)的所有子类上调用方法?

java - 支持代码完整的开源 Java IDE

java - 如果我通过 Hostgator 购买了 SSl,我该如何签署 Java 小程序

java - 缺少 android.util.Log 类文件

java - 运行示例项目时无法识别的 VM 选项 'UseConcMarkSweepGC'

java - 用 lambda 表达式替换匿名函数

java - 从 map 瓦片构建级别包文件以用于 libGDX

java - libGDX foreach 创建对象吗?