vb.net中的省略号冲突?

时间:2013-03-26 20:34:09

标签: vb.net ellipse collision

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

1 个答案:

答案 0 :(得分: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

在此示例中,rect1rect2是定义(包含)省略号的Rectangle,就像绘制带有矩形的省略号一样:

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


修改

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