c#中是否有預定義的方法可以進行碰撞檢測?如何做c#碰撞檢測?
我是新來的c#和我試圖得到兩個橢圓的碰撞檢測是否有任何預定義的方式可以實現碰撞檢測?
我已經有繪製橢圓的代碼,那麼啓動碰撞檢測的好方法是什麼?
private void timer1_Tick(object sender, EventArgs e)
{
//Remove the previous ellipse from the paint canvas.
canvas1.Children.Remove(ellipse);
if (--loopCounter == 0)
timer.Stop();
//Add the ellipse to the canvas
ellipse = CreateAnEllipse(20, 20);
canvas1.Children.Add(ellipse);
Canvas.SetLeft(ellipse, rand.Next(0, 500));
Canvas.SetTop(ellipse, rand.Next(0, 310));
}
// Customize your ellipse in this method
public Ellipse CreateAnEllipse(int height, int width)
{
SolidColorBrush fillBrush = new SolidColorBrush() { Color = Colors.Yellow};
SolidColorBrush borderBrush = new SolidColorBrush() { Color = Colors.Black };
return new Ellipse()
{
Height = height,
Width = width,
StrokeThickness = 1,
Stroke = borderBrush,
Fill = fillBrush
};
}
這是繪製橢圓然後被移除並出現在另一個位置的代碼。
你能發表該代碼的例子嗎? – 2013-04-21 15:57:13
wpf不是一個遊戲框架,它沒有類似精靈般的功能,如碰撞檢測。你可以做的最好的辦法是獲得兩個橢圓的邊界矩形,並使用'RectangleF.IntersectsWith'。否則,您將不得不計算兩個橢圓的接近角度,即該角度的半徑,然後查看兩個半徑的長度是否小於或等於兩個橢圓的焦點之間的距離。 – 2013-04-21 16:05:42