お早い回答ありがとうございます。
一応、32x32を一区間にしていますけど、プレイヤーは1づつ歩くので、
管理人さんの言われている方法だと、半端なところにいる場合、問題になりませんか?
でも、ちょっとよく分からないので、ソースを見ていただけますか?
int hantei[15][20] = {
{ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 },
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1 },
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1 },
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1 },
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1 },
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1 },
{ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1 },
{ 1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1 },
{ 1,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,1,1,1,1,1,1,1,1,1,1,1,1 },
};
if(player.flag==1){
//up
if( Key[ KEY_INPUT_UP ] == 1 ){
player.count++ ;
DrawGraph(player.x,player.y-16,image[player.count%80/20+player.muki*4],TRUE) ;//画像を描画
for(i=0;i<player.speed;i++){
if(player.x%64==32){
player.muki=0;
if(hantei[(player.y-1)/32][player.x/32]==1){
break;
}
else if(hantei[(player.y-1)/32][player.x/32]==2){
if(player.kabe_t==0)
break;
else
player.y-=1;
}
else if(hantei[(player.y-1)/32][player.x/32]==3){
if(player.bom_t==0)
break;
else
player.y-=1;
}
else{
player.y-=1;
}
}
else if(player.x%64<32){
player.muki=3;
if(hantei[player.y/32][player.x/32+1]==1){
break;
}
else if(hantei[player.y/32][player.x/32+1]==2){
if(player.kabe_t==0)
break;
else
player.x+=1;
}
else if(hantei[player.y/32][player.x/32+1]==3){
if(player.bom_t==0)
break;
else
player.x+=1;
}
else{
player.x+=1;
}
}
else if(player.x%64>32){
player.muki=1;
if(hantei[player.y/32][(player.x-1)/32]==1){
break;
}
else if(hantei[player.y/32][(player.x-1)/32]==2){
if(player.kabe_t==0)
break;
else
player.x-=1;
}
else if(hantei[player.y/32][(player.x-1)/32]==3){
if(player.bom_t==0)
break;
else
player.x-=1;
}
else{
player.x-=1;
}
}
}
}
//爆弾の設置
if(Key[KEY_INPUT_Z]==1){
if(bb_flag==0){
if((hantei[player.y/32][player.x/32]==0)||(hantei[player.y/32][player.x/32]==5)){
for(i=0;i<player.bom;i++){
if(bom.flag==0){
bom.counter=0;//カウンター初期化
if(player.x%32<17)
bom.x=player.x-player.x%32;
else
bom.x=player.x-player.x%32+32;
if(player.y%32<17)
bom.y=player.y-player.y%32;
else
bom.y=player.y-player.y%32+32;
hantei[bom.y/32][bom.x/32]=3;
bom.flag=1;
break;
}
}
}
このソースですと、爆弾にかぶってる方にいけないんですよね。
左に爆弾があって、右にプレイヤーが少し出ている場合でも左にいけない。
というところを直したいのです。