Java初心者の競技プログラミング日記

Dvorak配列でjavaを書いてます

ローグライクゲーム制作日記 1日目

目標

JavaJavaFx)でローグライクゲームを作る
・挫折する可能性が高いので、最低限のものでいいからとにかく完成させる


今日やったこと

・ゲームの外枠作り(マップ、キー入力、敵配置など)
・サンプルマップの中を探索できるようにした
・敵をランダムに移動させるようにした
 →主人公との座標差で移動するだけなので、次は幅優先探索でつくるべし
 →それだと重くなるかも……?
・ステータス欄とメッセージ欄を作った

↓こんな感じ

f:id:tsukasa_d:20180328045354j:plain


次やること

・ランダムダンジョン生成はとりあえず後回し

・適当でもいいので街マップをつくる

・階段の昇り下りの処理。
 →ゲーム開始時は0F(街)
 →下り階段処理
  →0F~8Fにいる場合は、ダンジョン生成
  →9Fにいる場合は、ボスマップ生成
 →昇り階段処理
  →10F~2Fにいる場合は、ダンジョン生成
  →1Fにいる場合は、街生成

・アイテム欄の実現
 →かなりめんどくさい
 →取得したらリストに追加して……って感じか。

・主人公のステータス充実
 →メンバに剣、鎧なども追加する
 →所持金
 →経験値、レベル

・それに伴う装備変更のシステムも作成

・店の処理
 →方向指定がめんどくさい(移動と話しかけるのを一緒にできない)ため、
  店の四近傍でTキーを押すとショップ画面に移行するように。
 →売却と購入。これもアイテム欄が必要。

・敵の移動AI
 →感知範囲+移動頻度+移動AI
 →弱い敵は感知範囲を狭くする
 →移動頻度についても同様
 →移動AIはめんどくさいので全部同じで(幅優先探索による最短距離)

・敵の能力
 →深い階層ほど強くなる(当然)
 →ボス以外はランダム

・弓矢とか魔法とか……
 →うーん無理
 →次作で
 →剣の範囲を広げるくらいだったらできるかな

・敵のグラフィック(つまり文字)
 →敵ごとに文字を変える?
  →可能
  →AtoZで、強いほどZに近いアルファベットとか
  →アイテム(I)と被ってるのでそこをとりあえず考える
 →敵の体力を色で表現したいが……
  →いまの表示方法(画面をまとめてラベルに貼りつける)だとできない。
  →Textオブジェクトを20*40個、画面に並べていくなどすれば実現可能
  →すごい重くなりそう

・扉の概念
 →一定の確立で進めるようになるマスと考えれば簡単に実装できるが……
 →保留