DJGL-ゲームの基礎

「DJGL-ゲームの基礎」の編集履歴(バックアップ)一覧はこちら

DJGL-ゲームの基礎」(2016/10/06 (木) 23:16:22) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

*ゲームの基礎 ---- とりあえずゲームの基本的な考え方を解説します。 概念的な話なので、早くゲームを作りたい人は&u(){読み飛ばして構いません。} ゲームは当有情のソフトウェアと違う点がいくつもあります。その点でゲーム以外のプログラムを作っていた人は戸惑うかもしれません。 **ゲームとソフトウェアの違い ---- 一番大きな特徴に&bold(){常に状態が更新される}というものがあります。 例えば、アクションゲームならユーザーが入力していない間も敵は動いています。 でも、普通のソフトウェアはユーザーが入力して初めて処理を開始します。 この違いがかなり大きいです。今はよくわからないかもしれませんが、覚えておいてください。 **ゲームループ ---- ゲームでは基本的に&bold(){ゲームループ}という流れにそってゲームの処理をします。 1フレーム(60FPSなら60分の1秒)に一回ループします。DJGLでは 初期化 ↓ 更新 ↓ 描画 ↓ 1フレーム終了まで待機 ↓ 更新に戻る という流れで行っています。 それぞれの流れを[[DJGL-環境構築]]で書いたソースコードのどの部分にあたるかを解説します。 -「初期化」にあたるのはメインメソッドの中とコンストラクタです。ここでプレイヤーや敵の初期配置などを決めます。 -「更新」にあたるのはupdateメソッドです。ユーザーの入力によりプレイヤーを動かしたり、敵を動かしたりします。 -「描画」にあたるのはdrawメソッドです。プレイヤーや敵の画像の描画や、ライフや残り時間などのゲーム情報を表示します。 この流れ及び待機処理は自動で行ってくれます。つまり、基本的に初期化とupdate,drawメソッドを実装すればゲームが出来上がるように作っています。 #highlight(linenumber,css){{{ import densan.s.game.drawing.Drawer; import densan.s.game.manager.GameManager; import densan.s.game.manager.Updatable; public class TestGame implements Updatable { //初期化 public TestGame() { // まだ使わない } //描画 @Override public void draw(Drawer d) { // まだ使わない } //更新 @Override public void update() { // まだ使わない } //初期化 public static void main(String[] args) { //ゲームを管理するクラスを取得 GameManager gm = GameManager.getInstance(); //このメソッドでウインドウを表示する //引数はそれぞれ(幅, 高さ, タイトルバーに表示する文字) gm.createFrame(800, 600, "テストゲーム"); //更新と描画を担うオブジェクトを設定 //今はあまり関係ない gm.setUpdatable(new TestGame()); } } }}} **まとめ ---- 今回はゲームの概念的な話をしました。 今はわからなくてもゲームを作り終わった後に読むと納得できるかもしれません。 次から本格的にプログラムを書いていきます。
*ゲームの基礎 ---- とりあえずゲームの基本的な考え方を解説します。 概念的な話なので、早くゲームを作りたい人は&u(){読み飛ばして構いません。} ゲームは当有情のソフトウェアと違う点がいくつもあります。その点でゲーム以外のプログラムを作っていた人は戸惑うかもしれません。 **ゲームとソフトウェアの違い ---- 一番大きな特徴に&bold(){常に状態が更新される}というものがあります。 例えば、アクションゲームならユーザーが入力していない間も敵は動いています。 でも、普通のソフトウェアはユーザーが入力して初めて処理を開始します。 この違いがかなり大きいです。今はよくわからないかもしれませんが、覚えておいてください。 **ゲームループ ---- ゲームでは基本的に&bold(){ゲームループ}という流れにそってゲームの処理をします。 1フレーム(60FPSなら60分の1秒)に一回ループします。DJGLでは 初期化 ↓ 更新 ↓ 描画 ↓ 1フレーム終了まで待機 ↓ 更新に戻る という流れで行っています。 それぞれの流れを[[DJGL-環境構築]]で書いたソースコードのどの部分にあたるかを解説します。 -「初期化」にあたるのはメインメソッドの中とコンストラクタです。ここでプレイヤーや敵の初期配置などを決めます。 -「更新」にあたるのはupdateメソッドです。ユーザーの入力によりプレイヤーを動かしたり、敵を動かしたりします。 -「描画」にあたるのはdrawメソッドです。プレイヤーや敵の画像の描画や、ライフや残り時間などのゲーム情報を表示します。 この流れ及び待機処理は自動で行ってくれます。つまり、基本的に初期化とupdate,drawメソッドを実装すればゲームが出来上がるように作っています。 #highlight(linenumber,css){{{ import densan.s.game.drawing.Drawer; import densan.s.game.manager.GameManager; import densan.s.game.manager.Updatable; public class TestGame implements Updatable { //初期化 public TestGame() { // まだ使わない } //描画 @Override public void draw(Drawer d) { // まだ使わない } //更新 @Override public void update() { // まだ使わない } //初期化 public static void main(String[] args) { //ゲームを管理するクラスを取得 GameManager gm = GameManager.getInstance(); //このメソッドでウインドウを表示する //引数はそれぞれ(幅, 高さ, タイトルバーに表示する文字) gm.createFrame(800, 600, "テストゲーム"); //更新と描画を担うオブジェクトを設定 //今はあまり関係ない gm.setUpdatable(new TestGame()); } } }}} **まとめ ---- 今回はゲームの概念的な話をしました。 今はわからなくてもゲームを作り終わった後に読むと納得できるかもしれません。 次から本格的にプログラムを書いていきます。 ---- #comment_num2

表示オプション

横に並べて表示:
変化行の前後のみ表示: