数ヶ月前に同じような質問をしたのですが、スレッドが下がってしまったのと、
また作りたくなったので質問します。
マップチップ内の当たり判定で坂道を移動させているのですが、どうしても
下記のP点でAの坂道にはまってしまいます。
P⊿←B □
⊿←A □□
□□□□□□
どうすれば自然に坂道を登る事が出来ますでしょうか?
アドバイスください。
あと、マップチップの番号が3のとき(右下り45度の坂)の時の判定が判定されるのですが、
地面にめり込んでしまいます。
これは何故なんでしょうか?
void Hit()
{
int i,j;
static int hitflag[100]={0};
static int yy[100]={0};
if(Map[(int)(Player.y+63)/32][(int)(Player.x+31)/32]==2)//Mapは2なら
{
//高さを計算
int h = ((int)(Player.x+31)%32) * -1;
if((Player.y+63) >= (Player.y+63)+h)
{
//1回しか代入しないようにする
if(hitflag[0]==0)
{
yy[0] = Player.y;
}
//高さを加算する
Player.y = yy[0] + h;
//フラグを1にする(これは、他の処理で使用する)
hitflag[0]=1;
}
}
else if(Map[(int)(Player.y+63)/32][(int)(Player.x)/32]==3)//Mapは3なら
{
//高さを計算
int h = ((int)(Player.x)%32);
if((Player.y+63) <= (Player.y+63)+h)
{
//1回しか代入しないようにする
if(hitflag[1]==0)
{
yy[1] = Player.y;
}
//高さを加算する
Player.y = yy[1] + h;
//フラグを1にする(これは、他の処理で使用する)
hitflag[1]=1;
}
}
else
{
hitflag[1]=0;
hitflag[0]=0;
}
//DrawFormatString(0,0,GetColor(255,255,255),"height=%d",-1*mx);
}
