今日はプロスキルカードゲーム開発勉強の40日目です。バグはやっと何個解決できました。島津先生のカードゲームコースのスクリプト素材は最基本なので、バグあったのは普通です。今まで発見されたのは四つあります。
①自分の手札のカードは相手のフィールドに置ける。
対策:DropPlaceのスクリプトにpublic enum TYPE は HANDとFIELDだけじゃなく、自分と相手のHANDとFIELDをはっきり分けて、SELFHAND、SELFFIELD、ENEMYHAND とENEMYFIELDを追加すると、システムがちゃんとわかったので、自分のカードは相手のフィールドに置けなくなった。
②スペルカードで攻撃して、自分や相手のヒーローのHPが0になっても、勝利判定できない。
対策:CardControllerのスクリプトにUseSpellToの最後にgameManager.CheckHeroHP()を追加すると、通常攻撃だけではなく、スペルカードで攻撃しても、勝利判定できるようになった。
③マナコストが0や以下になっても、スペルカード出せる。
対策:SpellDropManagerのスクリプトに
if(!movement.isDraggable)
{
return;
}
を追加すると出せないスペルカードは確実に出せないようになった。
④両方とも手札のカードが使切れたのに、勝利判定できない。
対策:GameManagerとUIManagerの勝利判定スクリプトにHeroHp <= 0だけよりplayer.deck.Count == 0 && enemy.deck.Count == 0とplayerHeroHp < enemyHeroHpを追加すると、勝利判定できるようになった。
ゲーム開発は本当に面白かったです。全く知識ゼロからスタートできるので、誰でも、勉強したら、開発はできます。バグ発見、ロジック理解、対策考えるのも勉強すべきです。