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

この例rect1rect2Rectangle、長方形で楕円を描くときのように、楕円を定義(含む)します。

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


編集:

パフォーマンスとオプションについては、ゲームエンジンを使用することをお勧めします。このリンクを確認してください:

于 2013-03-27T08:51:02.567 に答える