この人頭いいなと思ったエピソード

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

A 回答 (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>

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

ありがとうございました

お礼日時:2009/10/31 21:18

テトリスのコードにBGMを流すプログラムを入れることができれば、何とかなるかも知れません。


ですがそれ以外の方法は、申し訳ないですがわかりません。

この回答への補足

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

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

補足日時:2009/10/30 20:30
    • good
    • 1

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



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

この回答への補足

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

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

補足日時:2009/10/30 18:31
    • good
    • 0

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



参考URL:http://iislab.ele.kindai.ac.jp/moodle/mod/resour …

この回答への補足

ありがとうございます

補足日時:2009/10/30 18:30
    • good
    • 1

Windous APIの


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

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

この回答への補足

返答ありがとうございます。
#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
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報