ゲームを作り始めて2週間経ちました。
これからも頑張りますので、どうぞよろしくお願いします。
今日の大きな進捗は、ターン制を実装出来たことです。
プレイヤー1行動でエネミーも1行動しています。
今日は普段よりも作業時間を増やしました。
このままのペースだといつまで経っても完成しない気がして、少し焦ったからです。
時間を計っていたわけではないですが、いつもより4時間ほど多く作業したと思います。
ちなみに、モンスターの向きが進行方向に向かないのは、アニメーションをまだ設定していないからです。
↑は作業中の失敗作です。
今までのバグとは違う感じで面白かったので撮っておきました。
ターン制を実際に実装してみて、スピード感が無いなと思いました。
ターンを交互に移すように作ってしまったので、ゲームにスピード感が無くなってしまいました。
エネミーの行動が終了してからじゃないとプレイヤーが動けないので、トルネコとは違うんですよね。
なので、交互に動くのではなく、同時に動くように変更します。
状態を表す変数を細かく分けて、
入力待ちのwait、入力されたときのkeyInput、移動中のmovingを追加します。
moving状態の次はすぐにkeyWait状態に移行するようにします。
改善したものが↓になります。
概ねいいんですが、なんか最後らへんでエネミーが変な動きしてるんですよね。
当たっていないはずなのに当たり判定が効いてるみたいな。
色々と調べてみると、エネミーが移動するときに消費するフレーム数をちゃんと参照してないのが原因でした。
↓が修正後のgifです。
これでひとまず、ターン制は実装出来ました。
しかし今度は、キャラクターAIの方がおかしいことに気づきました。
y軸方向にしか追尾してきません。
途中まではx軸方向にもちゃんと追尾していたのに、急にy軸方向しか追いかけなくなりました。
該当部分を探してみると、プレイヤーとエネミーの距離を測る部分が間違っていることに気が付きました。
僕は今まで、x軸とy軸方向の距離の差を取って、差が大きいほうを縮めるように移動するAIを作っていたつもりでした。
しかし、単純に距離の差を取ると、引くほうがでかくなった時にマイナスになってしまうので、絶対値を取る必要があることに気づいていませんでした。
修正すると↑のような感じで動きます。僕が想像していたものはこれです。
とりあえずターン制の部分はこれくらいにしておいて、明日からは戦闘部分を作っていこうと思っています。
それに伴ってHPとか攻撃力や防御力などのステータスも実装していくつもりです。
ダメージ計算は、ポケモンやドラクエなどを参考にしようかと思います。
それでは。