スクリーンショット_2018-11-09_18

Scratchでポケモンぽいゲームを作る制作過程 #7

今回はPachiMon-7の内容を解説します。

PachiMon-6では敵モンスター(enm)が戦闘中に使用するスキルをランダムにしましたが、それをどんなモンスターでもできるようにスクリプトを修正したり、潜在的なバグを修正したりしました。

PachiMon-6からの主な追加・変更要素は以下の通りです。

・敵のHPbarが0になったのに戦闘終了しないバグを修正(HPが減らないバグ)

今回はバグの修正がメインです。しかも解説するのは一つだけです。


敵のHPbarが0になったのに戦闘終了しないバグを修正

PachiMon-6をプレイするとわかるんですが、敵のHPbarが0になってもバトルが終了しないバグがあります。

HPbarは減っていますが、肝心のHPそのものが減っていないのが原因でした。HPが0になったらバトル終了するスクリプト自体は正常に動いています。

色々検証した結果、以下の部分がバグの原因でした。

「determine-monster」でモンスターを決定します。そのさきで「call-monster-stats-dragon」というメッセージを送り、enm-hpなどのDragonのデータをセットしています。

この「determine-monster」がフラッグがクリックされてから”ずっと”になっているのがマズかったようです(1枚目の画像参照)。”ずっと”になっていると、ダメージを受けた後も「determine-monster」でセットされるDragonのデータが適用されるのでHPが元に戻ってしまっていたようです。

この部分を以下のように修正したらバグはなくなりました。

「determine-monster」を「battle-start」を受け取ったときのみにする事で、Dragonのデータを繰り返しセットしないようにしました。


実はこれ以外にもいくつかバグを修正しましたが、細かいところは省略しました。まだバグが残っているので次回以降修正していきます。次回は重くなりそうな予感。

作業はなるべく細かく刻んで記録に残していったほうがいいなあと思いました。特にバグ修正なんかは何をやったかわからなくなりがちなので。git-hubは便利って事ですね。一応、googleドキュメントにメモってはいるんですがクオリティが低いのがわかったのでそちらも改善していきます。

初めましてヒロです。勉強プロデューサー/コーチ:Lv50。無人島:Lv2。サバイバル:Lv2。YouTuber:Lv1。ブログ:Lv3。Twitter:Lv5。Note:Lv2。Lvは全て自称です。