衝突後の座標の更新メモ

衝突判定したら重なり分の半分をそれぞれの座標の数値に反映する。重なりに関しては、座標の差をだして、画像の大きさよりも小さくなった場合としてます。上下左右からぶつかるのですが、衝突した時の処理は[0]は引いて[1]は足しています。

float sakuraHeight_y = sakura[0].height_y – sakura[1].height_y;
float sakuraWide_x = sakura[0].wide_x – sakura[1].wide_x;

sakuraWide_x = Math.abs(sakuraWide_x);
sakuraHeight_y = Math.abs(sakuraHeight_y);

//桜の画角が30*30の場合
//重なっているときのみ座標の更新
if(sakuraHeight_y < 30 && sakuraWide_x < 30){
sakura[0].height_y = sakura[0].height_y – sakuraHeight_y/2 – 1;
sakura[0].wide_x = sakura[0].wide_x – sakuraWide_x/2 – 1;

sakura[1].height_y = sakura[1].height_y + sakuraHeight_y/2 + 1;
sakura[1].wide_x = sakura[1].wide_x + sakuraWide_x/2 + 1;
}else{
for(int iii = 0;iii<sakura.length;iii++){
//SakuraGravityクラスの複製:座標更新
sakura[iii].run(canvas,snow, newWidth,newHeight,sensorX,sensorY,sensorZ);
}
}

関連記事