マップチップの坂道について
Posted: 2010年3月17日(水) 18:02
こんばんは、TKOZです。
数ヶ月前に同じような質問をしたのですが、スレッドが下がってしまったのと、
また作りたくなったので質問します。
マップチップ内の当たり判定で坂道を移動させているのですが、どうしても
下記のP点でAの坂道にはまってしまいます。
数ヶ月前に同じような質問をしたのですが、スレッドが下がってしまったのと、
また作りたくなったので質問します。
マップチップ内の当たり判定で坂道を移動させているのですが、どうしても
下記の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); }
