【解決済み】車の速度計のようなメーターの作り方

キリンリキ
記事: 15
登録日時: 2023年7月24日(月) 22:41

【解決済み】車の速度計のようなメーターの作り方

投稿記事by キリンリキ » 2023年10月08日(日) 12:32

タコメーター(車の速度表示)のようなメーターを作りたいのですが、やり方がわかりません。
変数を使って現在の値を針が指し示すような仕様にしたいのですが、従来のゲージのように溜まっていくやり方ではないためどうやって実現しようか頭を悩ませております。
どうか皆様のお知恵を拝借できればと思います。
画像
最後に編集したユーザー キリンリキ on 2023年10月11日(水) 21:00 [ 編集 1 回目 ]

アバター
くろうど
記事: 279
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: 車の速度計のようなメーターの作り方

投稿記事by くろうど » 2023年10月08日(日) 20:47

この動画のような感じでしょうか?

https://x.com/kuroudo119/status/1710956 ... 36538?s=20

これであれば、ピクチャと「ピクチャの回転を元にしたプラグイン」で作成できそうです。

↓ピクチャ回転プラグインのダウンロードはGitHubから↓
https://github.com/kuroudo119/RPGMZ-Plu ... E%E8%BB%A2

参考情報
以下のルーレットの作り方と同じ考え方です。

↓ルーレットの作り方
https://blog.goo.ne.jp/kuroudo119/e/865 ... 0b030e9ab0

尚、ピクチャではない方法であれば分かりません。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
キリンリキ
記事: 15
登録日時: 2023年7月24日(月) 22:41

Re: 車の速度計のようなメーターの作り方

投稿記事by キリンリキ » 2023年10月10日(火) 13:45

くろうど さんが書きました:この動画のような感じでしょうか?

https://x.com/kuroudo119/status/1710956 ... 36538?s=20

これであれば、ピクチャと「ピクチャの回転を元にしたプラグイン」で作成できそうです。

↓ピクチャ回転プラグインのダウンロードはGitHubから↓
https://github.com/kuroudo119/RPGMZ-Plu ... E%E8%BB%A2

参考情報
以下のルーレットの作り方と同じ考え方です。

↓ルーレットの作り方
https://blog.goo.ne.jp/kuroudo119/e/865 ... 0b030e9ab0

尚、ピクチャではない方法であれば分かりません。


くろうどさん、お返事ありがとうございます。プラグインまで、ありがとうございます!
早速記事を拝見しブログ画像の通りに試してみたのですが、知恵が足らずくろうどさんの動画と同じ挙動を作ることができませんでした。
私が行いたいのは変数の値によって針が一定の場所を指し示し続ける温度計のようなイメージのため、
くろうどさんのあげていただいた、『ルーレット別バージョン』の動画のようなものを再現したいです。
ただ、短針を任意の場所で止めたり動かしたりするという挙動がわかりませんでした。
変数を対応させて針を動かしているのでしょうか。
良ければ別バージョンの作り方も教えていただきたいです!
よろしくお願いいたします。
アバター
くろうど
記事: 279
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: 車の速度計のようなメーターの作り方

投稿記事by くろうど » 2023年10月10日(火) 17:48

メーター.png
メーター.png (9.83 KiB) 閲覧数: 603 回

↑これの解説をしていきます。

まず、針を回転動作させずに任意の角度に表示するだけであれば、以下のスクリプトをスクリプトコマンドで書けばOKです。
以下の場合は、ピクチャ22番を90度回転させた表示にします。
setAngle関数はなさそうだったので……。

コード: 全て選択

$gameScreen.picture(22)._angle = 90;

もちろん、角度が何度の時にゲーム的にどのような意味を持つのか、メーター側画像のどの位置を指しているのかは、作者が知っておく必要があります。

そして、タコメーター風ということだったので回転させる話をすると、
Pointer_green.png
Pointer_green.png (586 バイト) 閲覧数: 603 回

針の画像は↑このように奇数幅の正方形で作ると良いでしょう。
ちなみに、この初期状態が角度0です。

次にイベントコマンドですが、
イベントコマンド.png

「ピクチャの回転」コマンドの代わりに、今回のプラグインのプラグインコマンドを使います。

このプラグインコマンドを使うと、右回転であれば最大角度で止まるように回転しますし、左回転であれば最小角度で止まるように回転します。

1回転以上する場合、角度は360を超えます。

初期角度には現在の角度を設定することになると思います。

よろしくお願いします。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
キリンリキ
記事: 15
登録日時: 2023年7月24日(月) 22:41

Re: 車の速度計のようなメーターの作り方

投稿記事by キリンリキ » 2023年10月10日(火) 22:01

くろうど さんが書きました:メーター.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度の角度を指す。といった使い方がしたいです。
ご教示いただけると幸いです。
アバター
くろうど
記事: 279
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡を取る:

Re: 車の速度計のようなメーターの作り方

投稿記事by くろうど » 2023年10月10日(火) 23:05

スクリプト欄で変数の値を使いたい場合は以下で出来ます。
(99は変数番号)

コード: 全て選択

$gameVariables.value(99)
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
キリンリキ
記事: 15
登録日時: 2023年7月24日(月) 22:41

Re: 車の速度計のようなメーターの作り方

投稿記事by キリンリキ » 2023年10月11日(水) 20:59

くろうど さんが書きました:スクリプト欄で変数の値を使いたい場合は以下で出来ます。
(99は変数番号)

コード: 全て選択

$gameVariables.value(99)


ありがとうございます!
おかげさまで変数の値によって針の角度を変動させることができました。
スクリプトによって変数の値を0から180に設定して角度を調整することで目的の挙動を達成できました。
くろうどさん、お付き合いいただき本当にありがとうございました!
後続の方用に変数の値を決めるスクリプトを置いておきます。
gameVariables.setValue(x, $gameVariables.value(x).clamp(0, 180))

“MZ:質問” へ戻る