PLC(シーケンサ)で太鼓の達人!のゲーム作成をしました。
今回は、連続動作を追加しました。
大きくは2点
・ドン!とカッ!の両方表示
・太鼓のドン!とカッ!、どちらが押された場合にポイント追加するか判断
を追加しました。
前回記事
www.niwakafa.comその他にもゲームは作成していますので、参考記事を貼り付けておきます。
www.niwakafa.com広告
【目次】
機能追加

今回追加した機能としては
・カッ!生成
・得点、得点リセット
・先頭No.
・連続表示
などです。説明をしていきます。
デバイス一覧

カッ!生成
これは前回の記事ではドン!を生成することができましたが、カッ!を生成できませんでしたので、生成できるようにしました。

単純にドン!の赤い部分を青にしただけです。笑

得点、得点リセット
得点はよくわかりませんでしたので、ある範囲の場合1点、ある範囲の場合3点というようにしました。
このある範囲というのは、速度によって変わってしまうので調整が難しいです。
得点計測があれば、当然0にしたボタンもつける必要があります。直接0を書き込むようにしました。
先頭No.
これは現在、どのキャラクタNo.が先頭にいるか表示しました。
動作には必要ありませんので、私の調整用です。
連続表示
部品移動

前回同様、部品移動を使用して表示させます。
ただし、今回は多くのドン!やカッ!を表示させるため、ちょっとしたテクニックを使用します。
そのテクニックを使用する前に、部品移動を多く作成します。それが上記画像となります。
部品は50個作りました。
デバイスについてですが、
・キャラクタNo.1
D2000:部品表示デバイス(値によって部品を切り換えられるデバイス)
D2002:部品移動 X軸ポジション位置
D2003:部品移動 Y軸ポジション位置
・キャラクタNo.2
D2005:部品表示デバイス(値によって部品を切り換えられるデバイス)
D2007:部品移動 X軸ポジション位置
D2008:部品移動 Y軸ポジション位置
としました。このように、データレジスタDをキャラクタNo.毎にまとめることによって、データレジスタDをインデックス修飾Zする場合にプログラムが簡単になります。
FOR~NEXT指令での処理
50個ドン!、カッ!を表示することが出来るのですが、これを一つ、一つ処理していては、動作変更した場合に修正で多くの時間を費やしてしまいます。ですので、今回は多数のFOR~NEXT指令を用いています。
インデックス修飾Z
FOR~NEXT指令の中には、必ずインデックス修飾Zを使用しています。インデックス修飾をすることによって、データレジスタをオフセットすることができ、様々な処理を自動化することができます。
上記画像がキャラクタ(ドン!、カッ!)を表示させるためのプログラムです。流れとして、
1.キャラクタが入力されていないデバイスをFOR~NEXT指令とインデックス修飾Z10を使用して検索。
2.キャラクタがドン!(L1020:ON)かカッ!(L1021:ON)を生成するのか確認しD2000Z10に書き込む。
3.データ転送が完了した所で、FOR~NEXT指令をBREAK指令で抜ける。
というようになっています。
連続動作確認

上記動画が連続で動作させたものになります。
ドン!やカッ!を連続表示でき、また太鼓の動作も確認できました。
広告
終わりに
FOR~NEXT指令を多用し、かなり難しいプログラムになりました。笑
また出来ましたら報告したいと思います。
著作権について
今回参考にしています『太鼓の達人』はBANDAI NAMKOが開発、著作権を有しています。
紹介するゲーム製作手法は、にわかFA電気屋が独自に考案するものであり、実際のゲーム製作手法とは異なる手法を使用しております。
にわかFA電気屋は私的使用の範囲内でゲームを製作するものであり、製作したゲームを配布・販売する意思がないことを宣言致します。
当記事が、BANDAI NAMKOより著作権侵害とみなされた場合、当記事を即刻削除致します。