【问题标题】:Using Java's HotSwap functionality with libGDX将 Java 的 HotSwap 功能与 libGDX 一起使用
【发布时间】:2013-12-13 17:17:39
【问题描述】:

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

  1. 使用“调试”按钮运行程序
  2. 在渲染函数中创建一个断点,以暂停程序。
  3. 改变rectangle.width的值
  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
    }
}

【问题讨论】:

    标签: java intellij-idea libgdx hotswap


    【解决方案1】:

    键入此内容后意识到我应该在渲染函数中更改矩形的宽度。由于 create 函数不会再次运行。

    以下代码可以正常工作。

    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
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多