1

我在我的游戏中遇到了一些问题,事实上我必须检测到椭圆-椭圆碰撞我更喜欢 vb.net 语言的代码,因为我无法理解其他任何对想法或代码有帮助的代码?

4

1 回答 1

0

Region您可以简单地检查与对象和Region.Intersect方法的冲突:

Dim gp1 As New Drawing2D.GraphicsPath()
gp1.AddEllipse(rect1)

Dim gp2 As New Drawing2D.GraphicsPath()
gp2.AddEllipse(rect2)

Dim reg1 As New Region(gp1)
Dim reg2 As New Region(gp2)

reg1.Intersect(reg2)

If reg1.GetRegionScans(New Drawing2D.Matrix(1, 1, 0, 1, 1, 0)).Length > 0 Then
    MessageBox.Show("Collision!")
End If

在这个例子中rect1,and rect2are Rectangles 定义(包含)椭圆,就像用矩形绘制椭圆一样:

Dim rect1 As New Rectangle(5, 5, 150, 100)
Me.CreateGraphics.DrawEllipse(Pens.Blue, rect1)


编辑:

对于性能和选项,您最好使用游戏引擎。检查此链接:

于 2013-03-27T08:51:02.567 回答