オブジェクトが他のオブジェクトと衝突したときにオブジェクトを停止しようとしています。つまり、ユーザーが他のオブジェクトにスライドさせようとすると、オブジェクトをスライドさせて、今のところ移動しないようにしたいということです。Xnaと長方形の衝突機能を使用しています。
public void Update(GameTime gametime)
{
Currentposition = Station.Position;
Station.Update();
coli = IsHit(ListObs[16].ShapeO, Station.Shape);
}
public void Draw(SpriteBatch spritebatch)
{
if (coli == true)
{
Station.Position = Currentposition;
Station.Draw(spritebatch);
}
else
{
Station.Draw(spritebatch);
}
}
現時点では機能していません。Farseer または bOx2DX を使用することもできますが、深すぎると思います (重力は必要ありません)。
public bool IsHit(Rectangle r1, Rectangle r2)
{
if (((r1.X + r1.Width >= r2.X) && (r1.X <= r2.X + r2.Width)) && ((r1.Y + r1.Height >= r2.Y) && (r1.Y <= r2.Y + r2.Height)))
return true;
else
return false;
}