ゲームの項目を移動するときに鳴る「ピッ」って効果音をLoadSoundMem()したいです。
今のところ簡潔に、
WinMein(){
DxLib_Init();
Title(); //タイトル画面
Menu(); //メニュー画面
}
みたいな構造です。
どこでも使う効果音なので外部変数で最初にメモリに入れちゃおうと思ったのですがCheckSoundMem()に-1が返ってきました。
過去のスレを検索したらどうやらWinMeinにあるDxLib_Init()のせいで出来ないそうです。
ならばと思い、DxLib_Init()の後にLoadSoundMem()をしハンドルをTitle()に渡したのですが、それもCheckSoundMem()に-1が返ってきました。
全く同じ処理をそれぞれの関数の最初に書くのはあまり美しくないような気がするのですが、そうするしかないのでしょうか。
そもそもこのゲームの構造自体が悪いのでしょうか。
また、ハンドルをTitle()に渡してもダメな理由は何でしょうか。
ゲーム中どこでも使う効果音について
Re: ゲーム中どこでも使う効果音について
情報が少なく、答えにくく感じます。
抽象的な構造だけでなく、実際のコード(最小限の・自己完結した・確認可能なサンプルコード)を提示していただけますか?
抽象的な構造だけでなく、実際のコード(最小限の・自己完結した・確認可能なサンプルコード)を提示していただけますか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ゲーム中どこでも使う効果音について
多分ダメでしょう。あんどーなつ さんが書きました:こんなのでどうでしょうか?
なぜなら、prev = scene;の直後にif (prev != scene) {という判定をしており、
(デバッガや宇宙線、ハードウェアの不都合などでデータが書き換わらければ)この判定は必ず偽になるので、不自然だからです。
DrawTitleやDrawMenu()の中でsceneが別の値に書換えられたことを検出するには、
例えばprev = scene;をswitch (scene) {の直前に移動するといいでしょう。
オフトピック
そもそもこれがここあわいさんのやりたいことに合っているかわかりませんが。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ゲーム中どこでも使う効果音について
最小限の・自己完結した・確認可能なサンプルコードを提示しようとシンプルなものを作ったら、
「DxLib_Init()の後にLoadSoundMem()をしハンドルをTitle()に渡した」やり方が成功してしまいました。
どうやら別の部分に問題があったみたいです。
次回からはもう少し自分で足掻いてから質問しようと思います。
大変失礼しました。
「DxLib_Init()の後にLoadSoundMem()をしハンドルをTitle()に渡した」やり方が成功してしまいました。
どうやら別の部分に問題があったみたいです。
次回からはもう少し自分で足掻いてから質問しようと思います。
大変失礼しました。
Re: ゲーム中どこでも使う効果音について
せっかくなので、以下がそのサンプルコードです。
大変失礼しました。
#include "DxLib.h"
int Title(int);
int White = GetColor(255, 255, 255);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
DxLib_Init();
ChangeWindowMode(TRUE);
int Push1 = LoadSoundMem("Se/Push1.mp3");
Title(Push1);
DxLib_End();
return 0;
}
int Title(int Push1)
{
PlaySoundMem(Push1, DX_PLAYTYPE_BACK);
//ここでエラーが出力される
if (CheckSoundMem(Push1) == 1) {
DrawString(0, 0, "再生成功", White);
}
else
if (CheckSoundMem(Push1) == -1) {
DrawString(0, 0, "エラー", White);
}
WaitKey();
return 0;
}
Re: ゲーム中どこでも使う効果音について
???Menuは?
みけCAT さん
疑似コードが間違ってるからといって怒らないでもらいたいです。
日本語で伝えるのが難しくてコードにするのも時間がかかるから書いてるだけなんですから。
そもそもDXライブラリを使ったことあるんですか?
みけCAT さん
疑似コードが間違ってるからといって怒らないでもらいたいです。
日本語で伝えるのが難しくてコードにするのも時間がかかるから書いてるだけなんですから。
そもそもDXライブラリを使ったことあるんですか?
Re: ゲーム中どこでも使う効果音について
間違いを指摘しただけで、怒ったことを示す書き込みはしていません。あんどーなつ さんが書きました:疑似コードが間違ってるからといって怒らないでもらいたいです。
間違いを指摘されたからといって怒らないでもらいたいです。
はい。あんどーなつ さんが書きました:そもそもDXライブラリを使ったことあるんですか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: ゲーム中どこでも使う効果音について
先ほどのコード例は、ハンドルをTitleに渡すことができる、ことを示していたのですね。
了解です。
ちなみに、同じ記述を書かなくてもよくするには、オブジェクト指向を使うという手があります。
C言語でいろいろできるようになってから勉強してみてください。
了解です。
ちなみに、同じ記述を書かなくてもよくするには、オブジェクト指向を使うという手があります。
C言語でいろいろできるようになってから勉強してみてください。