ページ 1 / 1
2Dマップが表示されない
Posted: 2015年7月30日(木) 03:04
by Qloeh
はじめまして。Cもプログラミングもぺーぺーの初心者のQloehです。
管理人様の解説を参考に拙くも書き出している所です。大変参考になります。
DXライブラリの練習として、2Dでマップチップを並べて表示するコードを書きましたが、
エラーは出ないのに画像が表示されません。
更に、キャラチップを描画すると、キーで動く設定にしてもキャラが動きません。
マップチップに関わらなければ画像が普通に表示されるのですが……。
以下がそのコードです。
コード:
#include"DxLib.h"
int WINAPI WinMain(HINSTANCE , HINSTANCE , LPSTR , int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);
int mapchip[5];
int i, j;
LoadDivGraph("MapChipハンドル",5,5,1,32,32,mapchip);
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen()==0){
for (i = 0; i < 15; i++){
for (j = 0; j < 20; j++){
DrawGraph(j * 32, i * 32, mapchip[0], FALSE);
}
}
}
DxLib_End();
return 0;
}
使っているのはVisual Studio 2013です。
もしよろしければ解答お待ちしています
Re: 2Dマップが表示されない
Posted: 2015年7月30日(木) 06:50
by hide
LoadDivGraph()の戻り値や格納されたグラフィックハンドルの値はどうなっていますか?
デバッガやprintfDx()等を使って調べてみましょう。
Re: 2Dマップが表示されない
Posted: 2015年7月30日(木) 07:59
by みけCAT
Qloeh さんが書きました:エラーは出ないのに画像が表示されません。
本当にLog.txtにもエラーが出ないのですね?
Qloeh さんが書きました:更に、キャラチップを描画すると、キーで動く設定にしてもキャラが動きません。
このコードは提示できますか?
Re: 2Dマップが表示されない
Posted: 2015年7月31日(金) 00:39
by Qloeh
Re:Re 2Dマップが表示されない。
>hideさん
デバッグをしてみると、メモリは全て?、
> DXApply.exe!WinMain(HINSTANCE__ * __formal, HINSTANCE__ * __formal, char * __formal, int __formal) 行 14 C++
[外部コード]
[下のフレームは間違っているか、または見つかりません。kernel32.dll に対して読み込まれたシンボルはありません。]
という呼び出し履歴が表示されました。ウォッチは全て空欄でした。
出力欄は
コード:
'DXApply.exe' (Win32): 'C:\Users\lactis\Documents\Visual Studio 2013\Projects\DXApply\Debug\DXApply.exe' が読み込まれました。シンボルが読み込まれました。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ntdll.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\kernel32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\KernelBase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\user32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\gdi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\lpk.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\usp10.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msvcrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\advapi32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\sechost.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\rpcrt4.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\sspicli.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\cryptbase.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\shell32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\shlwapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\imm32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ws2_32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\nsi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\winmm.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ole32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.7601.18837_none_ec86b8d6858ec0bc\comctl32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\dwmapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
0:ChangeWindowMode実行
2:ウインドウモードフラグが立てられました
6:DXライブラリの初期化処理開始
8: システムの情報を出力します
9: DXライブラリ Ver3.14d
10: 論理プロセッサの数 : 4
11: OS Windows7 ( Build 7601 Service Pack 1 )
112: 現時点のCPU動作速度:大体2.68GHz
112: MMX命令を使用します
113: SSE命令が使用可能です
114: SSE2命令が使用可能です
114: CPUベンダ:GenuineIntel
117: CPU名:Intel(R) Core(TM) i5-4310M CPU @ 2.70GHz
118: COMの初期化... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\uxtheme.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功しました
125: メモリ総量:3988.91MB 空きメモリ領域:1224.11MB
126: タイマーの精度を検査します
127: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60
127: パフォーマンスカウンターを使用します タイマー精度 : 2630.683000 KHz
128: ソフトの二重起動検査... 二重起動はされていませんでした
130: ウインドウクラスを登録します... 登録に成功しました
131: ウインドウモード起動用のウインドウを作成します
132: ディスプレイ情報のセットアップ開始
133: モニターの数:1 ディスプレイデバイスの数:6
134: No.0 モニター名:\\.\DISPLAY1 1366x768 32bit 60Hz
148: ディスプレイ情報のセットアップ完了
150: ウインドウの作成に成功しました
150: ウインドウを表示します
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ole32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ole32.dll' がアンロードされました
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ole32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ole32.dll' がアンロードされました
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\clbcatq.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\oleaut32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPTIP.DLL' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\oleacc.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\IMJP10K.DLL' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\IME\shared\IMETIP.DLL' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' がアンロードされました
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msctf.dll' がアンロードされました
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\IME\shared\imecfm.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\IME\IMEJP10\IMJPAPI.DLL' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\version.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\IME\shared\IMJKAPI.DLL' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
442: IMEを無効にしました
444: ウインドウスタイルをウインドウモード用に変更します... 完了
477: DirectInput関係初期化処理
477: XInput DLL の読み込み中... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\XInput9_1_0.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\setupapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\cfgmgr32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\devobj.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功
695: DirectInput7 の取得中... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\dinput.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\hid.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\wintrust.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\crypt32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msasn1.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功
912: 引き続き初期化処理... 初期化成功
915: ジョイパッドの初期化...
919: ジョイパッドの初期化は正常に終了しました
919: マウスデバイスの初期化... 初期化成功
921: キーボードデバイスの初期化... 初期化成功
924: DirectInput 関連の初期化は正常に終了しました
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\msacm32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
930: DirectSound の初期化を行います
931: DirectSound インターフェースの取得を行います.... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\dsound.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\powrprof.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功
941: 引き続きインターフェースの初期化処理... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\MMDevAPI.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\propsys.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
スレッド 0x2790 はコード 0 (0x0) で終了しました。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\AudioSes.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\avrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
1009: DirectSound デバイスを列挙します
1010: Module Name : Description : プライマリ サウンド ドライバー
1011: Module Name : {0.0.0.00000000}.{1737937b-141d-4c13-9076-9578408f9da5} Description : スピーカー (Realtek High Definition Audio)
1012: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz
1012: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB
1013: 利用可能サンプリング精度
1014: Primary 16bit = OK 8bit = OK
1014: Secondary 16bit = OK 8bit = OK
1015: 利用可能チャンネル
1015: Primary MONO = OK STEREO = OK
1016: Secondary MONO = OK STEREO = OK
1017: DirectSound の初期化は正常に終了しました
1018: d3d11.dll の読み込み.... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\d3d11.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\dxgi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功
1028: dxgi.dll の読み込み.... 成功
1029: API CreateDXGIFactory のアドレスを取得します.... 成功
1031: IDXGIFactory を作成します.... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\dxgidebug.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功
1039: API D3D11CreateDevice のアドレスを取得します.... 成功
1040: IDXGIAdapter を取得します.... 成功
1041: Direct3D 11 FeatureLevel 11_0 以上を対象とします
1042: ID3D11Device オブジェクトを取得します.... 'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\igd10iumd32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\bcrypt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\ncrypt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
'DXApply.exe' (Win32): 'C:\Windows\SysWOW64\igdusc32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。
成功
1074: IDXGIDevice1 を取得します.... 成功
1075: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました
1076: [ウインドウモード] IDXGISwapChain を作成します.... 成功
1078: IDXGIOutput を取得します.... 成功
1080: スワップチェインのバッファの ID3D11Texture2D を取得します.... 成功
1081: スワップチェインのバッファの ID3D11ShaderResourceView を作成します.... 成功
1082: スワップチェインのバッファの ID3D11RenderTargetView を作成します.... 成功
1084: Graphics Device:Intel(R) HD Graphics 4600
1084: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
1085: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です
1086: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です
1086: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です
1087: カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
1088: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です
1089: DXT2テクスチャフォーマットは使えません
1089: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です
1090: DXT4テクスチャフォーマットは使えません
1091: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です
1091: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
1092: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です
1093: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です
1094: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です
1094: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です
1095: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です
1096: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です
1096: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です
1097: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です
1098: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です
1098: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です
1099: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です
1100: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です
1100: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です
1101: 使用する機能レベル:D3D_FEATURE_LEVEL_11_0
1102: 同時にレンダリングできるバッファの数:8
1103: 最大テクスチャサイズ 幅:16384 高さ:16384
1103: 深度バッファを作成します.... 成功
1105: シェーダーコード関係の初期化.... スレッド 0x1994 はコード 0 (0x0) で終了しました。
スレッド 0x271c はコード 0 (0x0) で終了しました。
スレッド 0x2284 はコード 0 (0x0) で終了しました。
スレッド 0x10cc はコード 0 (0x0) で終了しました。
スレッド 0x1600 はコード 0 (0x0) で終了しました。
スレッド 0x2760 はコード 0 (0x0) で終了しました。
成功
1197: 各種シェーダー用定数バッファの作成.... 成功
1200: 各種 ID3D11InputLayout の作成.... 成功
1201: 標準描画用の頂点バッファの作成.... 成功
1274: 画像の単純転送処理の初期化... 成功
1289: フォントの初期化を行います
1292: フォントの初期化は正常に終了しました
1294: 文字コードバッファの初期化を行います... 完了しました
1304:DXライブラリの初期化処理終了
1309:画像ファイル C:\Users\lactis\Documents\Visual Studio 2013\Projects\DXApply\MapChip\map640,480\0.png のロードに失敗しました
プログラム '[10136] DXApply.exe' はコード 0 (0x0) で終了しました。
でした。
但しブレークポイントを設置してF5を押しただけなので、他のやり方があったか、ブレークポイントの位置が間違っているかしているかもしれません。
Re: 2Dマップが表示されない
Posted: 2015年7月31日(金) 00:48
by みけCAT
Qloeh さんが書きました:コード:
1309:画像ファイル C:\Users\lactis\Documents\Visual Studio 2013\Projects\DXApply\MapChip\map640,480\0.png のロードに失敗しました
はい、画像のロードに失敗していますね。
画像を適切な位置に置くか、ソースコード中の画像のパスを適切に修正してください。
Re: 2Dマップが表示されない
Posted: 2015年7月31日(金) 00:49
by Qloeh
>みけCATさん
キャラグラとキー入力を加えたコードを載せます。
コード:
#include"DxLib.h"
int WINAPI WinMain(HINSTANCE , HINSTANCE , LPSTR , int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);
int mapchip[5];
int i, j;
int charachip[12];
char key[256];
int s_pos_x=0, s_pos_y=0;
LoadDivGraph("マップハンドル", 5, 5, 1, 32, 32, mapchip);
LoadDivGraph("キャラハンドル", 12, 3, 4, 32, 32, charachip);
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen()==0){
for (i = 0; i < 15; i++){
for (j = 0; j < 20; j++){
DrawGraph(j * 32, i * 32, mapchip[0], FALSE);
}
}
DrawGraph(s_pos_x * 32, s_pos_y * 32, charachip[1], TRUE);
if (key[KEY_INPUT_UP] == 1)
s_pos_y -= 1;
if (key[KEY_INPUT_DOWN] == 1)
s_pos_y += 1;
if (key[KEY_INPUT_RIGHT] == 1)
s_pos_x += 1;
if (key[KEY_INPUT_LEFT] == 1)
s_pos_x -= 1;
WaitTimer(20);
}
DxLib_End();
return 0;
}
キャラは表示されますが、全く動きません。
因みに、マップを表示せずに画像を動かす処理は出来ました
Re: 2Dマップが表示されない
Posted: 2015年7月31日(金) 00:53
by Qloeh
>みけCATさん
返信ありがとうございます。
map~のところが余計だったのと、分割を勘違いしていました。
修正してみるとマップ背景が表示されました。ありがとうございました。
キーでまだ動かないのは当たり判定とかが関係しているのでしょうか?
Re: 2Dマップが表示されない
Posted: 2015年7月31日(金) 00:54
by Qloeh
すいません、凡ミスをしていました。
おさわがせしました、無事解決しそうです。
ありがとうございました