最近、ゲームを作ろうと、DxライブラリとVisual Studioを使い始めました。
今回、画像がウィンドウ内を左右に行ったり来たりするコードをかきました。main.cppに全て書いてデバッグした時には上手く表示されました。しかし、ファイル分割をすると画像は表示されず、真っ黒なウィンドウしか表示されません。ファイル分割の方法が間違っているか、コードに足りない点があると思うのですが、どこを間違えているのか自分だけでは分からず、お手上げ状態です。エラーメッセージはありません。以下、そのコードです。
[main.cpp]
#include "DxLib.h"
#include "TIKAWA.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
SetGraphMode(800, 600, 32);
// 描画先画面を裏画面にする
SetDrawScreen(DX_SCREEN_BACK);
if (DxLib_Init() == -1) return -1; // DXライブラリ初期化処理
void TIKAWA_Initialize(); // ロードする
while (1)
{
// 画面に描かれているものをすべて消す
ClearDrawScreen();
void TIKAWA_Draw(); //描画する
void TIKAWA_Update(); //動きを計算する
// 裏画面の内容を表画面に反映させる
ScreenFlip();
// 待たないと処理が早すぎるのでここで20ミリ秒待つ
WaitTimer(20);
// Windows システムからくる情報を処理する
if (ProcessMessage() == -1) break;
// ESCキーが押されたらループから抜ける
if (CheckHitKey(KEY_INPUT_ESCAPE) == 1) break;
}
// DXライブラリ使用の終了処理
DxLib_End();
// ソフトの終了
return 0;
}
[TIKAWA.h]
#ifndef DEF_TIKAWA_H //二重include防止
#define DEF_TIKAWA_H
// ロードする
void TIKAWA_Initialize();
// 描画する
void TIKAWA_Draw();
// 動きを計算する
void TIKAWA_Update();
#endif
#include "DxLib.h"
#include "TIKAWA.h"
// このファイル内でしか使えないグローバル変数
static int m_TGraph; //画像ハンドル
static int m_Tx = 0;
static int m_Ty = 0;
static int m_TMuki = 1;
// ロードする
void TIKAWA_Initialize() {
m_TGraph = LoadGraph("ちいかわ.png");
}
// 描画する
void TIKAWA_Draw() {
DrawRotaGraph(m_Tx, m_Ty + 35, 0.2, 0.0, m_TGraph, TRUE);
}
// 動きを計算する
void TIKAWA_Update() {
if (m_TMuki == 1) m_Tx += 5;
if (m_TMuki == 0) m_Tx -= 5;
// ちいかわが画面右端からでそうになっていたら画面内の座標に戻してあげ、移動する方向も反転する
if (m_Tx > 782)
{
m_Tx = 782;
m_TMuki = 0;
}
// ちいかわが画面左端からでそうになっていたら画面内の座標に戻してあげ、移動する方向も反転する
if (m_Tx < 38)
{
m_Tx = 38;
m_TMuki = 1;
}
}
main.cppにすべて書いた時には画像は表示されたので、画像名は間違えていないと思います。
OSはWindows11です。
初歩的な質問ですが、画像が表示されない原因について、助言をいただきたいです。よろしくお願いします。
長文失礼しました。