イントロダクション
前回作成したイメージを具体的なものにしていきます。
今回からは、プロコンゲーム(プログラミングコンテスト向けゲーム)の作成を始めようと思います。
今までに。テキストRPGを作成しようと色々と調査してきましたが、どうしても自然言語処理が必要になるため一時中止にしようと思います。
しかし、今までやったことは無駄にしません、RPG風に作成します。
設計2:受付処理
参考にするアプリケーションはU-16プログラミングコンテストです。これと同様に以下のような手順でプレーヤの参加を受付ます。
- 画面を開き、ゲームに参加するプレーヤーの使用するポート番号と表示するIMGを画面上に表示する
- 参加するプレーヤーの人数が確定したらスタートボタンでゲームを開始する
- ゲームのマップを表示する
- プレーヤーの配置を行う
- タイマーを開始して制限ターン数を表示、カウントダウンする
まずは、Map描画
今回作成するマップはダンジョンRPGをイメージにしているので通行できない部分(迷路のような)、とか罠とか、アイディアはつきませんが、マップの難易度(レベル)を設けて、それぞれの難易度でマップの生成を行うような実装を考えております。
JavaFX
画面の表示処理にはJavaFXを使用しますので、基本的な書き方はこちらの記事を参考にしてください。
早速、JavaFXの実装に入ります。
Map作成
実装したコードでは下のように表示されました。
以前作成したコードをちょいといじって動かしました。
ポイントになるコードは下のように実装しました。
/**
* Canvasに背景を描画する
* @param vBox Canvasを追加する領域
*/
public void createBackGround(VBox vBox) {
String lightGrass = "grass_light.png";
String deepGrass = "grass_deep.png";
String soilBasic = "soil_basic.png";
GridPane grid = new GridPane();
for (int j = 1; j < 5; j++) {
for (int i = 1; i <= 5; i++) {
grid.add(createImageLbl(lightGrass), j, i);
}
}
vBox.getChildren().add(grid);
}
単純に5x5マスにイメージファイル(ラベル)を表示しているだけです。この要領でゲームのマップを作成しようと思います。
ここで、問題が1つあります。マップにより難易度、を設けるので、その難易度とマップの内容を関連付けるのにどのようなロジックで行うか?ここがポイントになります。
ちょいと頭をひねります。。。
UMLについて
以前に下のようなことを記事にしました。
今回はここら辺で。。。
でわでわ。。。
次回:Java プロコンゲーム 〜見た目の作成(SceneBuilderの使用)〜
関連ページ
Java Basic
- Java Basic Level 1 〜Hello Java〜
- Java Basic Level2 〜Arithmetic Calculate〜
- Java Basic Level3 〜About String class〜
- Java Basic Level 4〜Boolean〜
- Java Basic Level 5〜If Statement〜
- Java Basic Summary from Level1 to 5
- Java Basic Level 6 〜Traning of If statement〜
- Java Basic Level8 〜How to use for statement〜
- Java Basic Level 8.5 〜Array〜
- Java Basic Level 9〜Training of for statement〜
- Java Basic Level 10 〜While statement 〜
- Java Basic Swing〜オブジェクト指向〜
- Java Basic Swing Level 2〜オブジェクト指向2〜
- サンプル実装〜コンソールゲーム〜
- Java Basic インターフェース・抽象クラスの作り方
- Java Basic クラスとは〜Step2_1〜
- Java Basic JUnit 〜テストスイートの作り方〜