ゲーム制作勉強中!あこがれだったプログラマーに今からなろう!

昔、あこがれていたプログラマー。今からでも勉強してみようと思い立ち、チャレンジ開始! 勉強メモや、悪戦苦闘な日々の記録です。

サイドビューアクションゲームを作ろう(11):アイテム効果

今日は昨日作成したアイテムに効果を実装する。

昼間のうちに考えておいた構想は、ざっくりと、こんな感じ。

・ItemGeneratorをItemManagerに改名
・アイテムの効果の分類を作成
・ItemDataのScriptableObjectにアイテムの効果分類と効果数値を追加。
・アイテムを取得した時、ItemManagerのGetItemメソッドで処理するようにする。
・ダメージ表示の仕組みで、アイテム効果を表示させる。

 

ItemManagerの改名やら、ScriptableObjectの改造やらはサクッと完成したけれど、ダメージ表示の仕組みでアイテム効果を表示させるのが、何気に大改造だった。

今までダメージ表示はint変数を引数で受け取っていたが、これを変えるのが面倒だったので、ダメージ表示のスクリプト(DamageUI)に、色を変えてアイテムの効果を表示させるメソッド(SetItemText)を新たに追加し、これを呼び出す様にした。

今見てみれば、string型なのにitemValueって、なんかチグハグな名前だこと😅

そして、生成したアイテムには全て、Itemスクリプトがアタッチしてあり、ItemManagerからアイテム生成時に、アイテム効果と効果量を引数で渡すように作成した。

プレイヤーがアイテムを取得するタイミングで、Itemスクリプトは、ItemManagerのGetItemメソッドにアイテム効果と効果量を引数で返して、効果に応じた処理を実行させる。

 

ItemManagerのコードも載せようと思ったけど、コードをブログに記載する時に使用しているCarbonが、困った事に、50行を超えるあたりから表示が不安定になるみたいなので、断念😅

余談だけど、コードをブログに載せる方法も改めないとだめかもしれない。

 

結果としては、こんな感じ。

youtu.be

 

今はアイテムテストだから、スライムからポコポコと良いアイテムが出てるけど、最終的にはスライムからは、何も出ないか、金貨か経験値、レアアイテムで回復薬くらいにしないとな〜

 

 

使用アセット

Pixel Fantasy Caves

Hero Knight - Pixel Art

Slime Character

Pixel Potions (with Animation)

Animated 2D Coins

Bandits - Pixel Art

 

使用画像

七三ゆきのアトリエ:https://nanamiyuki.com/