イントロダクション
LWJGL GitBookのChapterを写経しながら理解していきます。Git(ソース)はこちら。。。
前回は、Chapter2(3)をやりました。でもまだ半分くらいしか見ていなかったので続きを記載いたします。
Introduction
LWJGL We will understand GitBook ‘s chapter while shooting. Git (source) is here. . . Last time I did Chapter 2,(3) so I will do Chapter 2 this time.
https://ahbejarano.gitbook.io/lwjglgamedev/chapter2
コードを読む(Read the Code)
- DummyGame
- Renderer
- GameEngine
- IGameLogic
- Timer This time
- Window This time
前回は、3, 5のクラスについて見ました。インターフェースがあるのでその部分について触れています。次は4, 6, 7のクラスについて見ていきます。
********************
********************
Windowクラスについて
GameEngineクラスのコンストラクタでインスタンスを作成(コンストラクタが呼ばれて)されています。
public GameEngine(String windowTitle, int width, int height, boolean vSync, IGameLogic gameLogic) throws Exception {
gameLoopThread = new Thread(this, "GAME_LOOP_THREAD");
window = new Window(windowTitle, width, height, vSync);
this.gameLogic = gameLogic;
timer = new Timer();
}
Windowクラスは引数の値をフィールドで保持しています。
そしてinit()ではChapter1で見たような処理を行なっています。なので説明は割愛します。
Timerクラスについて
このクラスは、時間の管理を行うクラスです。
public class Timer {
private double lastLoopTime;
public void init() {
lastLoopTime = getTime();
}
public double getTime() {
return System.nanoTime() / 1000_000_000.0;
}
public float getElapsedTime() {
double time = getTime();
float elapsedTime = (float) (time - lastLoopTime);
lastLoopTime = time;
return elapsedTime;
}
public double getLastLoopTime() {
return lastLoopTime;
}
}
上のソースの赤字の部分は数値を示しています"_"(アンダースコア)がありますが可読性を上げるためのものなので値としては「>1000_000_000.0<」=「1000000000.0」です。参考:ORACLEのドキュメント
全体的にどんな動き?
これに関しては、ソースの細かいところを自分なりにまとめるのが良いと思いますので、割愛します(笑)
次回はChapter3をやります。
*********************************
*********************************