トップページ > 記事閲覧
すみません、クラス分けすると描画や音楽再生がされませんです。
名前:飛ぶ豚 日時: 2020/04/27 22:04

すみません、クラス分けすると描画や音楽再生がされません、どうしたらいいでしょうか? 教えていただけませんか。 エラーは出てないです。 コードを貼ります。 mainソースです。 #include "DxLib.h" #include "map.h" #include "music.h" // WinMain関数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); // 画面モードの設定 SetGraphMode(640, 480, 32); // DXライブラリ初期化処理 if (DxLib_Init() == -1) return -1; // グラフィックの描画先を裏画面にセット SetDrawScreen(DX_SCREEN_BACK); void map_Initialize(); // 初期化をする void music_Initialize(); // 動きを計算する void music_Update(); while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) { // 画面を初期化(真っ黒にする) ClearDrawScreen(); void map_Update(); void map_Draw(); // 裏画面の内容を表画面にコピーする ScreenFlip(); // もしESCキーが押されていたらループから抜ける if (CheckHitKey(KEY_INPUT_ESCAPE)) { break; } clsDx(); printfDx("%d", map_Draw); } void map_Finalize(); // 終了処理をする void music_Finalize(); // DXライブラリ使用の終了処理 DxLib_End(); // ソフトの終了 return 0; } mapのヘッダーです。 #ifndef DEF_MAP_H //二重include防止 #define DEF_MAP_H // 初期化をする void map_Initialize(); // 動きを計算する void map_Update(); // 描画する void map_Draw(); // 終了処理をする void map_Finalize(); #endif mapのソースです。 #include "DxLib.h" #include "map.h" // このファイル内でしか使えないグローバル変数 static int GraphHandle; //画像ハンドル static int m_y; //y座標 // 初期化をする void map_Initialize() { // グラフィック『test1.bmp』をメモリにロード GraphHandle = LoadGraph("C:/Users/601/Desktop/CROSS_TRANING/image/map1.png"); } // 動きを計算する void map_Update() { m_y++; } // 描画する void map_Draw() { DrawGraph(0, m_y, GraphHandle, TRUE); } // 終了処理をする void map_Finalize() { DeleteGraph(GraphHandle); } musicのヘッダーです。 #ifndef DEF_MUSIC_H //二重include防止 #define DEF_MUSIC_H // 初期化をする void music_Initialize(); // 動きを計算する void music_Update(); // 終了処理をする void music_Finalize(); #endif musicのソースです。 #include "DxLib.h" #include "music.h" static int bgmmap1; // 初期化をする void music_Initialize() { bgmmap1 = LoadSoundMem("12669.mp3"); //C: / Users / 601 / Desktop / CROSS_TRANING / } // 動きを計算する void music_Update() { PlaySoundMem(bgmmap1, DX_PLAYTYPE_BACK, TRUE); } // 終了処理をする void music_Finalize() { DeleteSoundMem(bgmmap1); } 以上なのですがご教授お願いいたします。
メンテ

Page: 1 |

Re: すみません、クラス分けすると描画や音楽再生がされませんです。 ( No.1 )
名前:sereparu 日時:2020/04/27 22:31

プログラムは実行していないので、ソースコードを読んだ範囲でお答えします。 間違っていたらすみません。 描画や音楽再生がされないのは、WinMain で呼び出している「map_Initialize」や「music_Initialize」などの前に 「void」と書かれていることが原因だと思います。 おそらく、WinMain 内の「map_Initialize」や「music_Initialize」などの前に「void」を書いたことで 「map.h」や「music.h」で定義した関数が WinMain 内で再定義されてしまっているのだと思います。 「map.h」や「music.h」で関数を定義する際は、戻り値が無い場合に「void」を書きますが WinMain 内で関数を呼び出す際は「void」を書く必要はありません。 以下のように修正してみてください。 ・修正前 void map_Initialize(); ・修正後 map_Initialize();
メンテ
Re: すみません、クラス分けすると描画や音楽再生がされませんです。 ( No.2 )
名前:飛ぶ豚(解決) 日時:2020/04/27 22:42

sereparuさんありがとうございます。 無事解決出来ました、本当にありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存