イライラ棒的なゲームを作っているんですけど・・・
Posted: 2014年4月20日(日) 00:20
下のようなコードでやっているんですけどマグマとマウスの当たり判定と数秒したら画面が真っ暗になるバグの解決法を教えて下さい!
#include "DxLib.h"
#include <stdlib.h>
int map[12][16] = {
{1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
{1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1},
{1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,1},
{1,0,1,0,1,0,1,1,1,1,1,1,0,1,0,1},
{1,0,1,0,1,0,1,0,0,0,0,1,0,1,0,1},
{1,0,1,0,1,0,0,0,0,0,0,1,0,1,0,1},
{1,0,1,0,1,1,1,1,1,1,1,1,0,1,0,1},
{1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1},
{1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1},
{1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1},
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},//マップ
};
int M1Handle,M2Handle,CHandle ;//画像データ保存
int MouseX , MouseY ;//マウス座標
int i,j;
int MAP()
{
M1Handle = LoadGraph( "map1.png" ) ;//マウスが通れる場所
M2Handle = LoadGraph( "map2.png" ) ;//落ちたら死ぬ
for (j = 0; j < 12; j++) {
for (i= 0; i < 16; i++) {
if(map[j][i]==1)
DrawExtendGraph( 40*i , 40*j ,40+40*i , 40+40*j , M1Handle , FALSE ) ;//道表示
else
DrawExtendGraph( 40*i , 40*j , 40+40*i , 40+40*j , M2Handle , FALSE ) ;//マグマ表示
}
}
return 0;
}
int HIT()
{
i=0,j=0;
for (j = 0; j < 12; j++) {
for (i= 0; i < 16; i++) {
if(map[j][i]==0){
if(MouseX < 30+30*i && 30*i < MouseX && MouseY < 30+30*j && 30*j < MouseY)//当たり判定
SetMousePoint( 0 , 0 ) ;
}
}
}
return 0;
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE ) ;//640×480 16*12
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// マウスを非表示状態にする
SetMouseDispFlag( FALSE ) ;
CHandle = LoadGraph( "bouzu.png" ) ;
while(1)
{
// マウスの位置を取得
GetMousePoint( &MouseX , &MouseY ) ;
MAP();
DrawExtendGraph( MouseX-15 , MouseY-15 , MouseX+15 , MouseY+15 , CHandle , TRUE ) ;
HIT();
// メッセージ処理
if( ProcessMessage() == -1 )
{
break ; // エラーが起きたらループを抜ける
}
ClearDrawScreen() ;
}
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}