- ベストアンサー
ゲームのBGM
Visual C++ で作ったテトリスがあるんですが 無音なのでBGMを流したいのですが テトリスのゲームと一緒にBGMを流すプログラムはどうやったらいいのでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
役に立つかはわかりませんが、少しアドバイスをします。 もしそのプログラムにウインドプロシージャがあるならば、その中のswitch文の中の case WM_CREATE: のすぐ後に PlaySound(TEXT(FILENAME),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP); のように書いて、 case WM_DESTROY: のすぐ後には PlaySound(NULL, NULL, SND_PURGE); のように書いて、 そのソースファイルの一番上に #include <windows.h> と書いておけばとりあえずコンパイルできると思うんですが、どうでしょうか? それとこの質問に答えやすいように、コードも何か書いてあるといいと思いますよ。
その他の回答 (4)
- ioehd
- ベストアンサー率16% (4/25)
テトリスのコードにBGMを流すプログラムを入れることができれば、何とかなるかも知れません。 ですがそれ以外の方法は、申し訳ないですがわかりません。
補足
そうですか テトリスのプロジェクトにBGMのプログラムを書き込むとエラー出てきて 出来なくなります。 頑張ってネット中探しているんですが見つかりません ^^;
- ioehd
- ベストアンサー率16% (4/25)
TEXTマクロに入れるのが一番簡単かも #define FILENAME "ekusu.mp3" . . . PlaySound(TEXT("FILENAME"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);
補足
ありがとうございます BGMが流れるプログラムはできました BGMを流すプロジェクトとテトリスを動かすプロジェクトがあるのですが、 テトリスを遊んでいる時にBGMを流すにはどうしたらいいのでしょうか?
- ioehd
- ベストアンサー率16% (4/25)
↓が参考になると思います。
補足
ありがとうございます
- ioehd
- ベストアンサー率16% (4/25)
Windous APIの PlaySoundという関数を使ってみてはどうでしょうか?
補足
返答ありがとうございます。 #include "windows.h" #define FILENAME "ekusu.mp3" LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch(uMsg){ case WM_DESTROY: PostQuitMessage(0); return 0; case WM_LBUTTONDOWN: //再生 PlaySound(FILENAME,NULL,SND_FILENAME | SND_ASYNC | SND_LOOP); return 0; case WM_RBUTTONDOWN: //停止 PlaySound(NULL,NULL,0); return 0; } return DefWindowProc(hWnd,uMsg,wParam,lParam); } と入力してみたのですが、 :\playsound\sound.cpp(12) : error C2664: 'PlaySoundW' : 1 番目の引数を 'const char [10]' から 'LPCWSTR' に変換できません。(新しい機能 ; ヘルプを参照) 1> 指示された型は関連がありません。変換には reinterpret_cast、C スタイル キャストまたは関数スタイルのキャストが必要です。 とエラーがでましたどこか間違っているのでしょうか?
お礼
ありがとうございました