情報学部 菅沼ホーム 全体目次 索引

Java によるゲームプログラミング

ご意見・ご質問(@を半角に変換)
totomi.kuni.mahoroba.00@gmail.com

  ここでは,ゲームの作成を通してプログラミング言語 Java について学びます.いくつかのゲームを扱いますが,あくまでプログラミング言語を学ぶことが目的であるため,作成するゲームの完成度は高くありませんし,実際のゲーム作成手順・方法とは異なったり,非効率になっている部分も多いかと思います.また,ゲーム作成の手順に沿って学習するため,一般的なプログラミング言語に対する教科書とは学習する順序や内容がかなり異なってくると思います.特に,このページで示したゲーム内で利用していない言語仕様には触れない,重複した説明がたびたび現れるなど,通常の教科書とはかなり異なった内容になることをご承知ください.言語の詳細に関しては,「Java と C/C++」を参照して下さい.

  では,具体的に,ゲームを作成しながら Java について学んでいきましょう.ゲーム自身は,どのゲームを先に読んでもらっても構いませんが,「ゲーム枠の作成」という章は,各ゲーム作成に関する章においてしばしば引用しています.まず,最初に読んでおいた方が良いと思います.また,「基礎技術」の章は,ゲーム作成における基礎的な技術について述べています.簡単に目を通し,適宜参考にして下さい.Java によってプログラムを作成する場合,以下に述べるように,コンパイルして実行しない限り,その表示状態を確認できません.「 JavaScript によるゲームプログラミング」の対応箇所を見れば,表示画面の様子を見ることができます.Java の場合とは,多少異なっていますが,適宜参考にしてください.

  各ゲームは,コンパイルしなければ実行できません.Java のプログラムを,本ページと同じディレクトリ(フォルダ)構造を保ったまま保存した後,Game.java が存在するディレクトリに移動し,コマンドプロンプト上で以下に示すいずれかのコマンドを実行すればコンパイルできるはずです.コンパイル後,「 java Game 」というコマンドを実行すればゲームがスタートします.なお,このページをダウンロードした内容には class ファイルも含まれていますので,環境が適合すれば,コンパイルすること無しに,「 java Game 」というコマンドで実行できるかもしれません.
javac Game.java (ソースプログラムが Shift JIS で書かれている場合)
javac -encoding utf-8 Game.java (ソースプログラムが utf-8 で書かれている場合)		

  1. ゲーム枠の作成

    1. クラスとメソッド
    2. 全体構造
    3. Game クラス
    4. MainPanel クラス
    5. StartPanel クラス
    6. GamePanel クラス
    7. GameClearPanel クラス
    8. GameOverPanel クラス

  2. 基礎技術
    1. 図形の描画
      1. 描画方法
      2. もう一つの例
    2. ビットマップ,フィルタ,外部画像
      1. ビットマップ
      2. 外部画像
      3. フィルタ
      4. もう一つの例
    3. イベント処理
      1. マウスのクリック
      2. ドラッグ
      3. キーイベント
      4. もう一つの例
    4. 速度と加速度(その1)
      1. 速度
      2. 加速度
      3. 自由落下
      4. もう一つの例
    5. 速度と加速度(その2)
      1. 摩擦
      2. 周期運動
      3. もう一つの例
    6. 跳ね返りと乱数
      1. 跳ね返り
      2. 乱数
      3. もう一つの例
    7. 衝突判定
      1. オブジェクト同士
      2. オブジェクトと点
      3. 距離
      4. もう一つの例
    8. 移動,回転,縮小・拡大
      1. アフィン変換
      2. もう一つの例
    9. 背景(マップ)
      1. マップの使用
      2. もう一つの例

  3. ゲームの作成

        ゲーム作成の各ステップにおいて,そのステップで追加・修正した箇所に関しては,プログラムの背景色を変更してあります.

    1. アクションゲーム
      その1) 1 枚の画像で背景や障害物を表現
      1. ステップ1: ゲームの枠組み
      2. ステップ2: ゲームオーバー
      3. ステップ3: ジャンプ
      4. ステップ4: 完成
      5. ステップ4: 完成( BGM 付き)
      その2) 格子内に配置した小さな画像の組合せで背景や障害物を表現
      1. ステップ1: ゲームの枠組み
      2. ステップ2: ゲームオーバー
      3. ステップ3: ジャンプ
      4. ステップ4: 完成
      5. ステップ4: 完成( BGM 付き)

    2. タワーディフェンスゲーム
      1. ステップ1: マップの表示
      2. ステップ2: マップの編集
      3. ステップ3: 敵の生成
      4. ステップ4: 味方の生成
      5. ステップ5: 完成

    3. ブロック崩し
      1. ステップ1: ゲームの枠組み
      2. ステップ2: ボールの動き
      3. ステップ3: ブロック崩し
      4. ステップ4: 完成

    4. 迷路
      1. ステップ1: ゲームの枠組み
      2. ステップ2: 主人公と迷路の配置
      3. ステップ3: 完成

    5. シューティングゲーム
      1. ステップ1: ゲームの枠組み
      2. ステップ2: 移動(自機)
      3. ステップ3: 移動(ボス,敵機)
      4. ステップ4: 弾の発射(自機)
      5. ステップ5: 弾の発射(ボス,敵機)
      6. ステップ6: 完成

    6. ぷよぷよ
      1. ステップ1: ゲームの枠組み
      2. ステップ2: ピースの落下
      3. ステップ3: ピースの生成と落下
      4. ステップ4: ピースの移動・回転・色の交換
      5. ステップ5: ピースの積み上げ
      6. ステップ6: 完成

    7. 8パズル
      1. ステップ1: ゲームの枠組み
      2. ステップ2: 初期状態の生成
      3. ステップ3: 完成

    8. ナンプレ
      1. ステップ1: ゲーム枠の作成
      2. ステップ2: ルール違反のチェック
      3. ステップ3: 数字の出現回数の表示
      4. ステップ4: 数字入力可能位置の表示
      5. ステップ5: 状態の記憶と復元

    9. オセロ
      1. ステップ1: ゲームの枠組み
      2. ステップ2: 初期状態の表示
      3. ステップ3: コマを置く
      4. ステップ4: 勝敗とスキップ
      5. ステップ5: 完成

情報学部 菅沼ホーム 全体目次 索引