ページ 1 / 1
【解決済み】車の速度計のようなメーターの作り方
Posted: 2023年10月08日(日) 12:32
by キリンリキ
タコメーター(車の速度表示)のようなメーターを作りたいのですが、やり方がわかりません。
変数を使って現在の値を針が指し示すような仕様にしたいのですが、従来のゲージのように溜まっていくやり方ではないためどうやって実現しようか頭を悩ませております。
どうか皆様のお知恵を拝借できればと思います。

Re: 車の速度計のようなメーターの作り方
Posted: 2023年10月08日(日) 20:47
by くろうど
Re: 車の速度計のようなメーターの作り方
Posted: 2023年10月10日(火) 13:45
by キリンリキ
くろうどさん、お返事ありがとうございます。プラグインまで、ありがとうございます!
早速記事を拝見しブログ画像の通りに試してみたのですが、知恵が足らずくろうどさんの動画と同じ挙動を作ることができませんでした。
私が行いたいのは変数の値によって針が一定の場所を指し示し続ける温度計のようなイメージのため、
くろうどさんのあげていただいた、『ルーレット別バージョン』の動画のようなものを再現したいです。
ただ、短針を任意の場所で止めたり動かしたりするという挙動がわかりませんでした。
変数を対応させて針を動かしているのでしょうか。
良ければ別バージョンの作り方も教えていただきたいです!
よろしくお願いいたします。
Re: 車の速度計のようなメーターの作り方
Posted: 2023年10月10日(火) 17:48
by くろうど

- メーター.png (9.83 KiB) 閲覧された回数 1019 回
↑これの解説をしていきます。
まず、針を回転動作させずに任意の角度に表示するだけであれば、以下のスクリプトをスクリプトコマンドで書けばOKです。
以下の場合は、ピクチャ22番を90度回転させた表示にします。
setAngle関数はなさそうだったので……。
コード: 全て選択
$gameScreen.picture(22)._angle = 90;
もちろん、角度が何度の時にゲーム的にどのような意味を持つのか、メーター側画像のどの位置を指しているのかは、作者が知っておく必要があります。
そして、タコメーター風ということだったので回転させる話をすると、

- Pointer_green.png (586 バイト) 閲覧された回数 1019 回
針の画像は↑このように奇数幅の正方形で作ると良いでしょう。
ちなみに、この初期状態が角度0です。
次にイベントコマンドですが、
「ピクチャの回転」コマンドの代わりに、今回のプラグインのプラグインコマンドを使います。
このプラグインコマンドを使うと、右回転であれば最大角度で止まるように回転しますし、左回転であれば最小角度で止まるように回転します。
1回転以上する場合、角度は360を超えます。
初期角度には現在の角度を設定することになると思います。
よろしくお願いします。
Re: 車の速度計のようなメーターの作り方
Posted: 2023年10月10日(火) 22:01
by キリンリキ
くろうど さんが書きました:メーター.png
↑これの解説をしていきます。
まず、針を回転動作させずに任意の角度に表示するだけであれば、以下のスクリプトをスクリプトコマンドで書けばOKです。
以下の場合は、ピクチャ22番を90度回転させた表示にします。
setAngle関数はなさそうだったので……。
コード: 全て選択
$gameScreen.picture(22)._angle = 90;
もちろん、角度が何度の時にゲーム的にどのような意味を持つのか、メーター側画像のどの位置を指しているのかは、作者が知っておく必要があります。
そして、タコメーター風ということだったので回転させる話をすると、
Pointer_green.png
針の画像は↑このように奇数幅の正方形で作ると良いでしょう。
ちなみに、この初期状態が角度0です。
次にイベントコマンドですが、
イベントコマンド.png
「ピクチャの回転」コマンドの代わりに、今回のプラグインのプラグインコマンドを使います。
このプラグインコマンドを使うと、右回転であれば最大角度で止まるように回転しますし、左回転であれば最小角度で止まるように回転します。
1回転以上する場合、角度は360を超えます。
初期角度には現在の角度を設定することになると思います。
よろしくお願いします。
ありがとうございます!おかげさまで動画のような挙動を再現することができました。
一点質問したいのですが、このルーレットの角度を変数として扱うことは可能でしょうか?
例えば、記載いただいたコードであれば
$gameScreen.picture(22)._angle = 90;
これの90の数値の部分を変数として、ゲーム内のステータスが90であればメーターも90度の角度を指す。といった使い方がしたいです。
ご教示いただけると幸いです。
Re: 車の速度計のようなメーターの作り方
Posted: 2023年10月10日(火) 23:05
by くろうど
スクリプト欄で変数の値を使いたい場合は以下で出来ます。
(99は変数番号)
コード: 全て選択
$gameVariables.value(99)
Re: 車の速度計のようなメーターの作り方
Posted: 2023年10月11日(水) 20:59
by キリンリキ
くろうど さんが書きました:スクリプト欄で変数の値を使いたい場合は以下で出来ます。
(99は変数番号)
コード: 全て選択
$gameVariables.value(99)
ありがとうございます!
おかげさまで変数の値によって針の角度を変動させることができました。
スクリプトによって変数の値を0から180に設定して角度を調整することで目的の挙動を達成できました。
くろうどさん、お付き合いいただき本当にありがとうございました!
後続の方用に変数の値を決めるスクリプトを置いておきます。
gameVariables.setValue(x, $gameVariables.value(x).clamp(0, 180))