カードゲームシステムの仕組み
痛いニュル工房さんに頂いたコメントへの返信の、補足の記事です。
自分も久しぶりにゲームの仕組みを覗いて思い出す必要があったので記事にしておきます。
Slay the spire 風のカード式戦闘システムは、基本的にランダムで被りのない数列をつくるhiz様の”HzRandomList.js”と、ツクール標準のイベントコマンドと簡単なスクリプトを使って作っています。
https://hiz-tkool.tumblr.com/tagged/ツクールMV プラグイン
制作スタート時のゲームの状態は以下の動画のような感じでした。
カードのシステムの基礎は図解すると以下のような感じです。
変数の値(上の図だと変数1、2、3に代入された値)に対応した画像(つまり3、5、2のカードの画像)を画面に表示させるには、
$gameScreen.showPicture(pictureId, name, origin, x, y, scaleX, scaleY, opacity, blendMode);
という画像を表示させるスクリプトの"name"の部分を
$gameVariables.value(1)
と入力とすると、例では変数(1)は 3 が代入されているので、
プロジェクトのimg/Picturesにある”3”を名称にしてある画像が表示されます。
手札の画像を表示したら、そこからカードに効果を持たせるためコモンイベントを起動させるわけですが、動画ではトリアコンタン様の ”ピクチャのボタン化プラグイン”を利用しています。
https://triacontane.blogspot.com/2015/11/blog-post_23.html
クリックした画像の名称にした数字を、変数に代入します。
◆変数の操作:任意の変数番号= $gameScreen.picture(”ボタン化プラグイン”で決めたクリックしたピクチャ番号を代入する変数).name();
スクリプトから画像の名称にした番号のコモンイベントを起動します。
◆スクリプト:$gameTemp.reserveCommonEvent(任意の変数番号)
動画では、テストのためそれぞれ数字に対応したコモンイベントで効果音を鳴らしています。