在纯 Java 版本中,在 Image 或 ImageLayer 上调用 width() 或 height() 有效。但是对于 HTML5 后端,如果我调用它太早,我会得到零。
Image image = assets().getImage("images/myimage.png");
ImageLayer layer = graphics().createImageLayer(image);
float w1 = image.width();
float w2 = layer.width();
我在游戏初始化代码中的 getImage() 之后以及从 paint() 方法中尝试过,第一次调用 paint()。但我总是使用 HTML5 后端(Chrome、MacOs)得到零。但是,如果我在第二次调用 paint() 方法后调用 width(),我会得到正确的宽度。因此,HTML5 后端的语义似乎有所不同:width() 方法在第一次渲染后返回图像/图层的正确宽度。
我的解释是否正确以及如何在渲染前获得尺寸?