Archiverse Internet Archive
投稿のみ 投稿と返信
前のページ(最近)
142 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 6278
次のページ(過去)
返信[13]
親投稿
BGMが終わるまで待つためには、最初のプログラムの4行目を最後に追加すれば良いと思います。使うトラックを変更している場合は、トラック番号を変更してください。 BGMを流しながら、他の操作をすることが出来るように、BGMPLAYは、待ち合わせをしない仕様になっています。待ち合わせが必要な場合は、プログラムで指定する必要があります。 たとえば、GBMを流している間、ボタン操作が出来ないとゲームにならないですよね。
0そうだね
プレイ済み
返信[10]
親投稿
一つ言い忘れていました。 MML文字列は、文字列なので、文字列変数に代入「=」したり、連結「+」、文字列操作関数が使えるので、それを使って加工することも出来ます。しかし、個人的な趣味としては、特別な事情が無ければ、一つの曲は、ひとまとまりとして扱うのが好きです。(良い悪いでは無く、あくまで好き嫌いなのでみらぼーさんの好きなようにするのが一番だと思います。) がんばってくっださい。
0そうだね
プレイ済み
返信[8]
親投稿
時間再現性については、ポリゴン表示のようなよほど複雑な計算をさせなければ、誤差1フレームに押さえることが出来ると思いますが、1フレーム=約1/60秒なので、1つの曲のパート切り替えには、マクロ機能を使って一つのMML文字列にするのが望ましいと思います。
0そうだね
プレイ済み
返信[7]
親投稿
MMLのマクロ機能の説明は、MMLと打ち込んでヘルプボタンを押すと7/7ページの一番下に出てきます。 他の方に教えて頂いたのですが、プログラムリストに、 REM MML とコメントを入れておくと、MML上にカーソルを移動して、ヘルプボタンを押すと見ることが出来て便利です。
0そうだね
プレイ済み
返信[5]
親投稿
MAINCNTという、起動時から1フレーム毎に1増えるシステム変数があります。この値をBGMPLAY実行時と、BGMCHK(0)=0になったときに、読み取って、その差が再生時間になります。 この値を、本番でBGMPLAYしたときに読み取ったMAINCNT値に加算すると終わり時間がわかります。実際には、数フレーム引いた値が良いかもしれません。 パートの使い回しということでしたら、マクロ機能「{}」があります。そちらを使った方が良いように思います。
0そうだね
プレイ済み
返信[2]
親投稿
対処はいぶきさんの通りです。 原因は、システム変数TIME$は、 「HH:MM:SS」(HH:時、MM:分、SS:秒) の形式の文字列になっているためです。自前で求める場合は、文字列操作関数の、LEFT$,MID$,RIGHT$関数を使って、HH,MM,SSを切り出した後にVAL関数で数値に変更するようになります。なお、文字列変数名[文字位置]で一文字ずつ読み取ることも可能です。
0そうだね
プレイ済み
返信[4]
親投稿
私は、ラベル地獄に戻るのは嫌です。ローカル変数用スタック管理もめんどくさいです。
2そうだね
プレイ済み
返信[3]
親投稿
チャンネル指定の「:0」を後ろのMMLから取りの除けば問題ないと思いますが、もし、最終目的がミュージックボックスのようなものだと、要求条件に合わないかと思います。 もし、次版で、MML変数の不具合が修正されれば、時間調整はもっと楽になると思われます。 みらぼーさんの問題の原因は、BGMPLAY"MML文字列"の演奏開始時間が2フレーム後になる仕様によるものなので、プログラムを作る(プチコンを利用する)側で何らかの対処が必要になります。
0そうだね
プレイ済み
返信[1]
親投稿
強力な敵を避けつつ目的地にたどり着くリアルRPGをやっていると思って、逆に楽しんではいかがでしょうか。
4そうだね
プレイ済み
返信[8]
親投稿
変数名、関数名、ラベルについては、仕様・実装が決まっていない部分があると思われます。正式に公開されていない仕様は、今後変更される事を考慮して、使うか使わないかを決めた方が良いと思われます。私的に使う分には、すぐに保守できるので問題ないと思います。
2そうだね
プレイ済み
返信[9]
親投稿
3/7にクッキーさんが発掘しています。
0そうだね
プレイ済み
返信[5]
親投稿
ただし、グローバル変数にアクセスする場合は、呼び出されるスロットで変数が使えるようになっている必要があるので、もし、使えない状態で呼び出すとエラーになります。回避方法としては、メインルーチンから呼び出し先スロットで変数を定義しているサブルーチンを実行することです。
1そうだね
プレイ済み
返信[1]
親投稿
曲の開始から終わりまでかかる時間(フレーム数)を事前に調べておき、終わる数フレーム前に別のトラックで演奏を始めるというのはどうでしょうか。演奏する前にBGNSETかBGMSETDで定義曲番号(128~255)を登録する必要があります。
0そうだね
プレイ済み
返信[3]
親投稿
実行速度を気にしなくて良ければ、参照の副作用を使う方法があります。一次元配列で次元の境界を自前で管理する方が速いと思います。
1そうだね
プレイ済み
返信[4]
親投稿
呼び出される側に COMMON DEF FN A,B OUT C,D END のようなものを作り、 呼び出し元から、呼び出せば、通常のDEFと同じ引数の受け渡しになるので、それで出来ると思います。
1そうだね
プレイ済み
返信[5]
親投稿
目立つのは、苦手なので、なしでお願いします。
0そうだね
プレイ済み
返信[3]
親投稿
良かったです。 日常生活に悪影響の無い範囲で、がんばってください。
1そうだね
プレイ済み
返信[1]
親投稿
@IDTのデータで作成される配列変数は、SP番号が連番で指定されていることを、前提とした処理になっているように思われます。 しかし、白い花とエメラルドの間が連番になっていません。 そのために、IVTとITSの関係に不整合が発生しているようです。 間違っていたらすみません。
1そうだね
プレイ済み
返信[27]
親投稿
スマイルブーム小林様 古い投稿へのコメント失礼します。 ・症状 A$="L32[CDEFGAB]8 BGMSET 128,A$ とすると Illegal MML(BGMSET) Out of range (in Track 0) となります。なお、 BGMPLAY "L32[CDEFGAB]8 は問題ありません。 以上、調査お願いします。
1そうだね
プレイ済み
投稿
[AEK4W3]MML機能確認 機能追加 ・Aボタンを押すと現在のチャンネルに記録されているMMLを表示し、簡単な編集(文字の追加・削除)を出来るようにしました。表示前に簡単なMMLのチェックをし、異常があれば最上段に表示し、カーソルを異常を検出した近辺に移動します。 [547QY3D4]インターバルタイマー 3.1.0対応 ・CHKLABEL()を3.1.0用に修正しました 機能追加 ・メニュー画面で「ニュウリョク」を選択して、文字列入力方法を切り替える機能を追加しました。新しい文字列入力画面でL・Rボタン+Aボタンで下画面を切り替えることが出来ますが、カタカナを入力できません。しかし、MMLを入力するときには便利かと思います。
4そうだね
プレイ済み