我在游戏中遇到了一些问题 实际上我必须检测椭圆 - 椭圆碰撞 我更喜欢vb.net语言中的代码,因为我无法理解任何其他代码 任何有关想法或代码的帮助?
答案 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
在此示例中,rect1
和rect2
是定义(包含)省略号的Rectangle
,就像绘制带有矩形的省略号一样:
Dim rect1 As New Rectangle(5, 5, 150, 100)
Me.CreateGraphics.DrawEllipse(Pens.Blue, rect1)
修改强>
对于性能和选项,您最好使用游戏引擎。检查以下链接: