参照するドキュメント(LWJGL-GitBook)
参照コード:Chapter7-1(Gitです)
イントロダクション
前回、なんとか以下のように各Cube毎に「高さ」を与えてやることができました。
しかし、ぱっと見では「よくわからん」のが現状です。なのでこいつを少しはわかりやすくするために「思いやり」を発揮します。
思いやりその1
実は上記のキャプチャは以下のものを示しています(そのつもりです)。
- Cubeの「高さ」は家計簿の支出金額を示しています。
- 7 x 5のマスは1ヶ月を示しています(マスは1日)。
「全然わかんねぇよ!」と怒られそうですが、現状はそんなもんでしょう。
そんなわけで試行錯誤してみます。
- 手前の面に(月)〜(日)をつけてみる
- 左の面に1週〜5週までを示す文言を表示する
とりあえずはこれで行ってみようと思います。
テクスチャを貼る
<2018/11/05> /** 戦闘中 */
今日の目玉です。ですが、今日はテクスチャを退治することができず。。。
以下のようなエラーが出てしまい、解決に至らず。。。と行ったところです。
Warning validating Shader code: Validation Failed: No vertex array object bound.
java.lang.NullPointerException
at de.matthiasmann.twl.utils.PNGDecoder.readFully(PNGDecoder.java:802)
at de.matthiasmann.twl.utils.PNGDecoder.(PNGDecoder.java:112)
at zenryokuservice.gui.lwjgl.kakeibo.engine.graph.Texture.loadTexture(Texture.java:31)
at zenryokuservice.gui.lwjgl.kakeibo.engine.graph.Texture.(Texture.java:14)
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.putOnTexturePlate(DummyGame.java:109)
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.init(DummyGame.java:81)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.init(GameEngine.java:48)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.run(GameEngine.java:36)
at java.lang.Thread.run(Thread.java:748)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.start(GameEngine.java:27)
at zenryokuservice.gui.lwjgl.kakeibo.game.Main.main(Main.java:13)
java.lang.NullPointerException
at de.matthiasmann.twl.utils.PNGDecoder.readFully(PNGDecoder.java:802)
at de.matthiasmann.twl.utils.PNGDecoder.(PNGDecoder.java:112)
at zenryokuservice.gui.lwjgl.kakeibo.engine.graph.Texture.loadTexture(Texture.java:31)
at zenryokuservice.gui.lwjgl.kakeibo.engine.graph.Texture.(Texture.java:14)
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.putOnTexturePlate(DummyGame.java:109)
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.init(DummyGame.java:81)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.init(GameEngine.java:48)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.run(GameEngine.java:36)
at java.lang.Thread.run(Thread.java:748)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.start(GameEngine.java:27)
at zenryokuservice.gui.lwjgl.kakeibo.game.Main.main(Main.java:13)
java.lang.ArrayIndexOutOfBoundsException: 7
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.putOnTexturePlate(DummyGame.java:109)
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.init(DummyGame.java:81)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.init(GameEngine.java:48)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.run(GameEngine.java:36)
at java.lang.Thread.run(Thread.java:748)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.start(GameEngine.java:27)
at zenryokuservice.gui.lwjgl.kakeibo.game.Main.main(Main.java:13)
java.lang.NullPointerException
at zenryokuservice.gui.lwjgl.kakeibo.engine.graph.Mesh.render(Mesh.java:89)
at zenryokuservice.gui.lwjgl.kakeibo.game.Renderer.render(Renderer.java:70)
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.render(DummyGame.java:278)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.render(GameEngine.java:100)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.gameLoop(GameEngine.java:68)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.run(GameEngine.java:37)
at java.lang.Thread.run(Thread.java:748)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.start(GameEngine.java:27)
at zenryokuservice.gui.lwjgl.kakeibo.game.Main.main(Main.java:13)
java.lang.NullPointerException
at zenryokuservice.gui.lwjgl.kakeibo.engine.graph.Mesh.cleanUp(Mesh.java:114)
at zenryokuservice.gui.lwjgl.kakeibo.game.DummyGame.cleanup(DummyGame.java:285)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.cleanup(GameEngine.java:77)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.run(GameEngine.java:41)
at java.lang.Thread.run(Thread.java:748)
at zenryokuservice.gui.lwjgl.kakeibo.engine.GameEngine.start(GameEngine.java:27)
at zenryokuservice.gui.lwjgl.kakeibo.game.Main.main(Main.java:13)
<2018/11/06>
今日も敗北を喫してしまいました。
だけど、NullPointerExceptionは解決しました。
原因は、参照しているファイルが間違っていたことです。実装したコード
そして、Meshクラス1つで2種類のMeshクラスを管理しようとしたりと。。。つまづきました。
そして今日は、ここまで来ました。
本当は、Cubeの手前に「月〜日」のテクスチャをつける予定だったのですが。。。なんでこうなったのかが、まるでわかりません。→敗北。。。
修正したコードは、
上記3クラスです。そして、新たに追加したのが「TexturedMesh」クラスです。
<2018/11/07>
色々試したけど、次の機会にリベンジを決める方向に移行します。。。
中途半端にImageが読み込めているのが悔しいさを倍増させますな。。。「月」の一部が表示されている感じに見えます。
関連ページ一覧
<今回のやっていること>
- Eclipse アプリ作成 Lv1〜家計簿を作る準備〜
- Eclipse アプリ作成 Lv2〜家計簿を作る土台作り〜
- Eclipse アプリ作成 Lv3〜3Dグラフ用Cube作り〜
- Eclipse アプリ作成 Lv4〜3Dグラフ用Cubeに高さを与える〜
- Eclipse アプリ作成 Lv5〜惨敗:CubeにTextureを貼る〜
- Eclipse アプリ作成 Lv7〜Cubeを日付順に並べる〜
<Java Basic>
- Java Basic for文 〜Step1_3_1〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 9〜Training of for statement〜
- Java 3DGame LWJGL GitBook chapter7-1〜Cube作成〜「動画あり」
<サイトマップ>