条件との交差または衝突検出について質問があります。バー(画像)とボール(画像)の間の衝突検出を行っています。バーをドラッグする際のユーザーの応答に応じて、バーを上下に移動できます。衝突判定コードは以下の通りです。
public bool Intersects(Rect barRectangle, Rect blueBallRectangle)
{
barRectangle.Intersect(blueBallRectangle);
if (barRectangle.IsEmpty)
{
return false;
}
else
{
return true;
}
}
プライベート void OnUpdate(オブジェクト送信者、オブジェクト e)
Rect blueBallRectangle= new Rect(blueBallPositionX, blueBallPositionY, blueBall.ActualWidth, blueBall.ActualHeight);
Rect barRectangle= new Rect(barPositionX, barPositionY, bar.ActualWidth, bar.ActualHeight);
しばらくの間、ボールが衝突を検出すると、ボールはそらされます。ただし、そらされるのではなく、ギャップを通過することを追加したいと思います。
if (Intersects(barRectangle, blueBallRectangle))
{
this.blueBallVelocityY *= -1;
this.blueBallVelocityX *= -1;
}
バーの画像は以下の通り。