ここから本文です

ただいまメモ帳VBSで、初心者がRPGゲームを作ってます。 ランダムエンカウント、...

tomamelia45617さん

2014/10/1412:55:15

ただいまメモ帳VBSで、初心者がRPGゲームを作ってます。
ランダムエンカウント、モンスター毎にステータスが違う。などなど。
ところがランダムな部分だけ上手くいきません(泣)。

ググりましたが見つかりませんでした(号泣)。
音楽再生とか探したけど見つからなかった(さらに号泣)。
↓は翻訳
おねがいします。ランダムな敵をランダムな数だけ現れるっていうのはできるのでしょうか?
それと音楽再生ってメモ帳VBSではできないのでしょうか。

閲覧数:
54
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

グレード

カテゴリマスター

2014/10/1416:15:35

こんにちは。
VBSのマニュアルでは
Randomize ステートメント参 照
Rnd 関数 | Timer 関数
必要条件
バージョン 1
乱数ジェネレータを初期化 (乱数系列を再設定) します。

Randomize [number]
引数 number には、任意の有効な数式を指定します。

解説
number には、Rnd 関数の乱数ジェネレータに引き渡す新しいシード値を指定します。number を省略すると、システム タイマーから取得した値が新しいシード値として使われます。

Randomize ステートメントを使用しない場合、引数を指定しないで Rnd 関数を呼び出すと、最初に Rnd 関数を呼び出したときのシード値と同じ値が使用されます。それ以降は、直前に生成された数がシード値として使用されます。

メモ 乱数系列を繰り返すには、数値を指定して Randomize ステートメントを実行する直前に、負の引数を指定して Rnd 関数を呼び出します。引数 number に同じ値を指定して Randomize ステートメントを使用しても、前の乱数系列を繰り返すことはできません。
次のコードは、Randomize ステートメントの使用例です。

Dim MyValue, Response
Randomize ' 乱数ジェネレータを初期化します。
Do Until Response = vbNo
MyValue = Int((6 * Rnd) + 1) ' 1 ~ 6 のランダムな値を生成します。
MsgBox MyValue
Response = MsgBox ("繰り返しますか ? ", vbYesNo)
Loop
となっています。

音楽の再生は、「再生するファイル」を準備しておき、再生実行ファイルのshell起動ぐらいしか、出来ないです。

vbsでは、同じスクリプトですら、多重起動が出来ます。
それぞれのスレッドとして存在することになるので、外部に「スレッドのコントロールするスクリプトを指揮者に見立てて、合図を検知して音楽の再生、というように、サインを工夫しながら、複数のVBSファイルで構成するシステムとなります。

質問した人からのコメント

2014/10/14 21:03:10

降参 あ、あ、あ…
ありがとうございましたぁ!!!!助かりました!!!本っ当にありがとう。そこまで親切にありがとう!!!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

よしもと爆笑コント動画

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する