• ベストアンサー

ゲームのBGM

Visual C++ で作ったテトリスがあるんですが 無音なのでBGMを流したいのですが テトリスのゲームと一緒にBGMを流すプログラムはどうやったらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ioehd
  • ベストアンサー率16% (4/25)
回答No.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> と書いておけばとりあえずコンパイルできると思うんですが、どうでしょうか? それとこの質問に答えやすいように、コードも何か書いてあるといいと思いますよ。

intelVista
質問者

お礼

ありがとうございました

その他の回答 (4)

  • ioehd
  • ベストアンサー率16% (4/25)
回答No.4

テトリスのコードにBGMを流すプログラムを入れることができれば、何とかなるかも知れません。 ですがそれ以外の方法は、申し訳ないですがわかりません。

intelVista
質問者

補足

そうですか テトリスのプロジェクトにBGMのプログラムを書き込むとエラー出てきて 出来なくなります。 頑張ってネット中探しているんですが見つかりません ^^;

  • ioehd
  • ベストアンサー率16% (4/25)
回答No.3

TEXTマクロに入れるのが一番簡単かも #define FILENAME "ekusu.mp3" . . . PlaySound(TEXT("FILENAME"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

intelVista
質問者

補足

ありがとうございます BGMが流れるプログラムはできました BGMを流すプロジェクトとテトリスを動かすプロジェクトがあるのですが、 テトリスを遊んでいる時にBGMを流すにはどうしたらいいのでしょうか?

  • ioehd
  • ベストアンサー率16% (4/25)
回答No.2

↓が参考になると思います。

参考URL:
http://iislab.ele.kindai.ac.jp/moodle/mod/resource/view.php?id=331
intelVista
質問者

補足

ありがとうございます

  • ioehd
  • ベストアンサー率16% (4/25)
回答No.1

Windous APIの PlaySoundという関数を使ってみてはどうでしょうか?

参考URL:
http://www13.plala.or.jp/kymats/study/MULTIMEDIA/PlaySound_file_rsc.html
intelVista
質問者

補足

返答ありがとうございます。 #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 スタイル キャストまたは関数スタイルのキャストが必要です。 とエラーがでましたどこか間違っているのでしょうか?

関連するQ&A