こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ゲームのBGM

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

投稿日時 - 2009-10-29 21:28:33

QNo.5407020

すぐに回答ほしいです

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

役に立つかはわかりませんが、少しアドバイスをします。
もしそのプログラムにウインドプロシージャがあるならば、その中の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>

と書いておけばとりあえずコンパイルできると思うんですが、どうでしょうか?
それとこの質問に答えやすいように、コードも何か書いてあるといいと思いますよ。

投稿日時 - 2009-10-30 23:04:27

お礼

ありがとうございました

投稿日時 - 2009-10-31 21:18:32

ANo.5

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.4

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

投稿日時 - 2009-10-30 19:39:20

補足

そうですか
テトリスのプロジェクトにBGMのプログラムを書き込むとエラー出てきて
出来なくなります。

頑張ってネット中探しているんですが見つかりません
^^;

投稿日時 - 2009-10-30 20:30:17

ANo.3

TEXTマクロに入れるのが一番簡単かも

#define FILENAME "ekusu.mp3"
.
.
.
PlaySound(TEXT("FILENAME"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

投稿日時 - 2009-10-30 17:16:40

補足

ありがとうございます BGMが流れるプログラムはできました

BGMを流すプロジェクトとテトリスを動かすプロジェクトがあるのですが、
テトリスを遊んでいる時にBGMを流すにはどうしたらいいのでしょうか?

投稿日時 - 2009-10-30 18:31:23

ANo.2

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

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

投稿日時 - 2009-10-30 17:00:21

補足

ありがとうございます

投稿日時 - 2009-10-30 18:30:59

ANo.1

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

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

投稿日時 - 2009-10-30 14:32:43

補足

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

投稿日時 - 2009-10-30 15:28:58

あなたにオススメの質問