BGMと文字表示を合わせたいのですが、処理が遅い(重い)時などにずれてしまいます。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
化猫
記事: 15
登録日時: 14年前

BGMと文字表示を合わせたいのですが、処理が遅い(重い)時などにずれてしまいます。

#1

投稿記事 by 化猫 » 14年前

dixqさんが動画をアップしているように
[nico]http://www.nicovideo.jp/watch/sm4687447[/nico]
自分もBGMと合わせてタイトル画面で文字を表示させようとしているのですが、この動画では後から音を合わせているのでしょうか?

ゲームとしてプレイする際、確実にずれないようにプログラムで出来るのでしょうか?
実際に弾幕に合わせる訳ではないので、それよりは簡単かなと思うのですが、どのように制御すればいいのか分かりません。

自分が書いたプログラムでは、普通にBGMを再生し
毎回 title (int型変数) に1ずつ足していき、その数値が指定の数以上になったら文字を表示するようにしています。

一回ぴったり合ったので、タイトル画面は完成だと思ったのですが、別の日に起動してみるとちょっとずれていて・・・。

DXライブラリのリファレンスページを見ましたが、それらしい項目はありませんでした。

この方法を利用すれば、音ゲーなどにも応用できるのではないかと考えています。
どうかご教示宜しくお願い致します。

また、そのような方法が解説されているサイト、書籍等がありましたら紹介して頂きたいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

Re: BGMと文字表示を合わせたいのですが、処理が遅い(重い)時などにずれてしまいます。

#2

投稿記事 by softya(ソフト屋) » 14年前

試してないですが、GetCurrentPositionSoundMem()で音楽の再生位置は得られると思います。
リファレンスの方はリンクされてないし、説明が間違ってますね(SetCurrentPositionSoundMemと混乱)。
http://homepage2.nifty.com/natupaji/DxL ... html#R8N15
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

化猫
記事: 15
登録日時: 14年前

Re: BGMと文字表示を合わせたいのですが、処理が遅い(重い)時などにずれてしまいます。

#3

投稿記事 by 化猫 » 14年前

説明が違っているので、最初はどうすればいいのか分かりませんでした。
再生しながらは使えないという部分が頭に残っていて、値を得ても0のままで・・・。

http://hpcgi2.nifty.com/natupaji/bbs/pa ... ew&no=1714
こちらのページを参考にして、再生しながら使えることが分かりました。

ミリ秒で扱えて、使いやすかったので GetSoundCurrentTime(bgm_handle) を使用しました。

無事思った通りに動かすことが出来ました。
本当にありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る