仕事やめたのでゲームを作る

トルネコの大冒険とポーションメーカーを足して2で割ったようなゲームをつくりたい

ゲーム制作の進捗(14日目):ターン制実装成功

ゲームを作り始めて2週間経ちました。

これからも頑張りますので、どうぞよろしくお願いします。

 

今日の大きな進捗は、ターン制を実装出来たことです。

プレイヤー1行動でエネミーも1行動しています。

f:id:mizukinoko:20190427124859g:plain

ターン制を実装

今日は普段よりも作業時間を増やしました。

このままのペースだといつまで経っても完成しない気がして、少し焦ったからです。

時間を計っていたわけではないですが、いつもより4時間ほど多く作業したと思います。

ちなみに、モンスターの向きが進行方向に向かないのは、アニメーションをまだ設定していないからです。

 

f:id:mizukinoko:20190427124711g:plain

↑は作業中の失敗作です。

今までのバグとは違う感じで面白かったので撮っておきました。

 

ターン制を実際に実装してみて、スピード感が無いなと思いました。

ターンを交互に移すように作ってしまったので、ゲームにスピード感が無くなってしまいました。

エネミーの行動が終了してからじゃないとプレイヤーが動けないので、トルネコとは違うんですよね。

なので、交互に動くのではなく、同時に動くように変更します。

状態を表す変数を細かく分けて、

入力待ちのwait、入力されたときのkeyInput、移動中のmovingを追加します。

moving状態の次はすぐにkeyWait状態に移行するようにします。

改善したものが↓になります。

f:id:mizukinoko:20190427160253g:plain

ターン制改善版

概ねいいんですが、なんか最後らへんでエネミーが変な動きしてるんですよね。 

当たっていないはずなのに当たり判定が効いてるみたいな。

色々と調べてみると、エネミーが移動するときに消費するフレーム数をちゃんと参照してないのが原因でした。

↓が修正後のgifです。

f:id:mizukinoko:20190427170707g:plain

エネミーの移動部分修正

これでひとまず、ターン制は実装出来ました。

しかし今度は、キャラクターAIの方がおかしいことに気づきました。

y軸方向にしか追尾してきません。

途中まではx軸方向にもちゃんと追尾していたのに、急にy軸方向しか追いかけなくなりました。

該当部分を探してみると、プレイヤーとエネミーの距離を測る部分が間違っていることに気が付きました。

僕は今まで、x軸とy軸方向の距離の差を取って、差が大きいほうを縮めるように移動するAIを作っていたつもりでした。

しかし、単純に距離の差を取ると、引くほうがでかくなった時にマイナスになってしまうので、絶対値を取る必要があることに気づいていませんでした。

f:id:mizukinoko:20190427173433g:plain

移動距離の差の部分を修正

修正すると↑のような感じで動きます。僕が想像していたものはこれです。

 

とりあえずターン制の部分はこれくらいにしておいて、明日からは戦闘部分を作っていこうと思っています。

それに伴ってHPとか攻撃力や防御力などのステータスも実装していくつもりです。

ダメージ計算は、ポケモンドラクエなどを参考にしようかと思います。

それでは。

プライバシーポリシー