入れないようにしたいのですが、実行すると、キャラに重なれる上にそこから出る事が出来ません。
コードは下の通りです。
map.h
void draw_map(void){
for (i = 0; i < 15; i++){
for (j = 0; j < 20; j++){
DrawGraph(j * 32, i * 32, map_chip[0][map[now_map - 1][i][j]], FALSE);
block[i][j] = 0;
}
}
for (i = 0; i < chara_all; i++){
if (chara_eve[i].map == now_map&&chara_eve[i].flag == 1){
DrawGraph(chara_eve[i].pos_x * 32, chara_eve[i].pos_y * 32, chara[chara_eve[i].chara_no].chip[chara_eve[i].chip_vector], TRUE);
block[chara_eve[i].pos_y][chara_eve[i].pos_x] = 1;
}
}
}
Main
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen(DX_SCREEN_BACK);
fileload();
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && GetHitKeyStateAll(key) == 0){
draw_map();
DrawGraph(s_pos_x * 32, s_pos_y * 32, chara_chip[0][s_vector], TRUE);
if (key[KEY_INPUT_RETURN] == 1){
while (CheckHitKey(KEY_INPUT_RETURN) == 1);
event_check();
}
else{
if (key[KEY_INPUT_UP] == 1){
if (s_pos_y > 0&&block[s_pos_y][s_pos_x]!=1){
s_pos_y -= 1;
vector_up();
}
else{
vector_up();
map_check();
}
}
if (key[KEY_INPUT_DOWN] == 1){
if (s_pos_y < 14&&block[s_pos_y][s_pos_x]!=1){
s_pos_y += 1;
vector_down();
}
else{
vector_down();
map_check();
}
}
if (key[KEY_INPUT_RIGHT] == 1){
if (s_pos_x < 19&&block[s_pos_y][s_pos_x]!=1){
s_pos_x += 1;
vector_right();
}
else{
vector_right();
map_check();
}
}
if (key[KEY_INPUT_LEFT] == 1){
if (s_pos_x > 0&&block[s_pos_y][s_pos_x]!=1){
s_pos_x -= 1;
vector_left();
}
else{
vector_left();
map_check();
}
}
WaitTimer(40);
}
}
DxLib_End();
return 0;
}