今回、64×64マップチップを用いて、ゲーム上のマップを表示しようと思い、それに関する学習をはじめました。
そこでまず目をつけたのが、DXライブラリ置場のサンプルプログラムの一つ、マップ表示の基本です。
ひとまずこれを打ち込み、いろいろいじりながら理解をしようと、実践したのがこちらのプログラムです。
// マップ表示基本
#include "DxLib.h"
#define MAP_SIZE 64 // マップチップ一つのドットサイズ
#define MAP_WIDTH 10 // マップの幅
#define MAP_HEIGHT 8 // マップの縦長さ
// マップのデータ
int MapData[ MAP_HEIGHT ][ MAP_WIDTH ] =
{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } ,
{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }
} ;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
int i , j ;
int mapimg=LoadGraph("chip.jpg");
SetGraphMode( 640 , 480 , 64 ) ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// マップを描く
for( i = 0 ; i < MAP_HEIGHT ; i ++ )
{
for( j = 0 ; j < MAP_WIDTH ; j ++ )
{
if( MapData[ i ][ j ] == 1 )
{
DrawExtendGraph(j * MAP_SIZE , i * MAP_SIZE , j * MAP_SIZE + MAP_SIZE , i * MAP_SIZE + MAP_SIZE , mapimg,TRUE);
}
}
}
// キー入力待ち
WaitKey() ;
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}真っ黒なままです。
何がいけないんでしょう?アドバイスお願いします。ちなみに画像は64×64の地面の画像です。