私はしばらくの間、Graphics、Graphics2DなどでJavaの通常のグラフィックデバイス、awt、swingなどを使用してきましたが、LWJGLに関する一連のチュートリアルを見始めました。私は本当に楽しんで、そのシステムで自分のゲームの 1 つをやり直すことにしました。ロジックはすでにあるので、簡単だと思いました。そして、1 つの概念上の問題に遭遇しました。
この特定のケースでは、ボックスを表すクラス Box がありましたが、画像で描画して境界線を作成しました。私は9枚の画像を持っていました.1枚は中央に1枚(これはプレーンカラーの1ピクセル幅の画像です)、4枚は側面に、4枚は角に使用しました。すべてのボックスで同じだったので、静的な BufferedImage 配列にこのすべての画像がありました。次に、各ボックスにはグローバルな BufferedImage があり、そこにボックスを描画しましたが、ボックスのすべての部分に画像を描画する必要があるため、これは非常に遅いプロセスです。次に、実際の draw メソッド (Graphics g を受け取った) で、正しい位置に BufferedImage を描画しました。ボックスが作成されると、ボックスのサイズは変更されないため、コンストラクターでボックス イメージを 1 回「作成」するだけで済みました。
gl_ メソッド (glBegin()、glVertex2i()) は、指定したことがないにもかかわらず、常に画面に描画されるため、LWJGL でそれを行う方法を理解できませんでした。では、どのように画像に描画し、どのようにメモリに保存するのですか (BufferedImage も使用します)。また、必要なときに画面に描画するにはどうすればよいですか? LWJGL がテクスチャを使用していることがわかったので、BufferedImage の最初の静的配列を Texture の静的配列にし、その中に 9 つのテクスチャのそれぞれを正しく保存しました。それは正しい方法ですか?グローバル BufferedImage はどうですか? グローバル テクスチャである必要がありますか? その場合、テクスチャに「描画」する方法は?