今回は、前回の記事で作ったお絵かきソフトの延長線として、簡単なシューティングゲームを作成することで、プログラミングにおいて重要な「オブジェクト指向」の理解を深めていこうと思います。

ただ、「オブジェクト指向」は理解するのに少々時間がかかる概念ではあるので、プログラマーを目指そうとしている方であれば、メンターの指導を無料で受けながらプログラマーとしての就職までサポートしてもらえる当社の『GEEK JOB プログラミングキャンプ』に参加するといいかもしれません。

Javaでゲームを作るには、Slick2Dなど専用のライブラリがありますが、本記事の目的は、ゲームを作ることそのものではなく、ゲームを作ることを通じてプログラミングについての理解を深めてもらうことなので、あえて専用のライブラリは用いないことにします。

まず前回と同様、以下のようなGUIを作成してください。

field

コードは以下のようになります。

前回と違って背景色を設定していますが、それ以外はほとんど同じものです。

今回作るのは、お絵かきソフトではなくゲームなので、JPanelを継承したクラスの名前をCanvasからFieldに変更しています。本質的な違いはありません。

本記事で学べること

本記事では、前回の記事の内容を引き継ぎつつ、以下のアウトラインに沿って進めていきます。

1.リスナーを理解する

前回やらなかったKeyListenerとActionListenerを使い、キーボードの入力に応じて移動する自機と、時間経過で移動する弾を作る。

2.クラスを分割して管理する

Fieldクラスに入れていた自機や弾を別のクラスに抽出する。

同時に、ファイルも分割してコード全体を見やすくする。

3.データ構造を理解する

敵をListで管理する。foreach文を理解する。

4.オブジェクト指向を理解する

Player、Bullet、Enemyに、共通のクラスGameObjectを継承させることで、描画や更新を一元的に行う。

5.多態性(ポリモーフィズム)を理解する

オブジェクト指向の華とも言える、ポリモーフィズムについて説明する。

Enemyを継承して敵のバリエーションを作り、それらをField側から単一の関数で動かす。

わりと感動するポイントです。

6.列挙型を理解する

当たり判定作成の為に、Player、Bullet、Enemyにそれぞれ味方属性、敵属性を付ける。

単純な数字で管理したときとの違いを明確化する。

[転職率95.1%]最短22日で未経験からプログラマーへ『GEEK JOB 転職コース』
geekjob_to_gol_banner_sp_06

『GEEKJOB 転職コース』では未経験からでもプログラミングや仕事の進め方を学習でき、プログラマーとして転職/就職できるまでサポートします。

  • 短期集中のプログラミング学習で未経験から最短22日での転職/就職ができる

  • IT業界の採用を熟知したメンターが就活サポート

  • わからないことは現役プログラマに質問できる

  • オフィスで働く上で必要なスキルを身に付けられる

  • 紹介可能企業は500社以上


文系出身だから、全くプログラミング経験がないから、プログラミングの学習に挫折してしまったから、といった方も関係ありません。

未経験からプログラマーを目指せる環境を用意しています。

詳しく見る

この記事の内容について報告する