Pure 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() メソッドの 2 回目の呼び出しの後に width() を呼び出すと、正しい幅が得られます。そのため、HTML5 バックエンドではセマンティクスが異なるようです: width() メソッドは、最初にレンダリングされた後、画像/レイヤーの正しい幅を返します。
私の解釈は正しいですか?レンダリング前にサイズを取得する方法は?