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

ただ「オブジェクト指向」は理解するのに少々時間がかかる概念ではあるので、プログラマーを目指そうとしている方であれば、メンターの指導を無料で受けながらプログラマーとしての就職までサポートしてもらえる当社の『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にそれぞれ味方属性、敵属性を付ける。

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

【1日体験可】最短1か月で未経験からプログラマーへ就職できる『GEEK JOB キャンプ』
geekjob_to_gol_banner_sp_06

『GEEKJOB キャンプ』は0からプログラミングや仕事の進め方を学習でき、プログラマーとして就職するまでサポートします。

  • 短期集中型のプログラミング学習で未経験から最短1か月での就職ができる

  • わからないことはメンターにその場で質問できる

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

  • 約500社の優良企業から就職先を探せる


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

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

詳しく見る

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