Private Sub Drawitems(GS As X2GameStep, mbw As X2BodyWrapper)
If mbw=Null Or mbw.IsVisible=False Then Return
Dim Rhombus, Rhombus2, Rhombus3, Rhombus4, Rhombus5 As BCPath
Dim p5, p6, p7, p8 As B2Vec2
Dim f As B2Fixture = mbw.Body.FirstFixture
Dim HalbBreite As Float = mbw.X2.GetShapeWidthAndHeight(f.Shape).X/2.
Dim HalbHohe As Float = mbw.X2.GetShapeWidthAndHeight(f.Shape).Y/2.
Dim p1 As B2Vec2 = X2.WorldPointToMainBC(mbw.Body.Position.X-HalbBreite, mbw.Body.Position.Y-HalbHohe)
Dim p2 As B2Vec2 = X2.WorldPointToMainBC(mbw.Body.Position.X+HalbBreite, mbw.Body.Position.Y-HalbHohe)
Dim p3 As B2Vec2 = X2.WorldPointToMainBC(mbw.Body.Position.X+HalbBreite, mbw.Body.Position.Y+HalbHohe)
Dim p4 As B2Vec2 = X2.WorldPointToMainBC(mbw.Body.Position.X-HalbBreite, mbw.Body.Position.Y+HalbHohe)
'
'
'Punkte definition:
' calculating a small offset
Punkte(p1, p5)
Punkte(p2, p6)
Punkte(p3, p7)
Punkte(p4, p8)
' top
If p3.Y > Click.Y Then
Rhombus.Initialize(p3.X, p3.Y).LineTo(p7.X, p7.Y).LineTo(p8.X,p8.Y).LineTo(p4.X,p4.Y)
GS.DrawingTasks.Add(X2.MainBC.AsyncDrawPath(Rhombus.Clone, BrushLineColor1, True, 0))
End If
' bottom
If p1.Y < Click.Y Then
Rhombus2.Initialize(p2.X, p2.Y).LineTo(p6.X, p6.Y).LineTo(p5.X,p5.Y).LineTo(p1.X,p1.Y)
GS.DrawingTasks.Add(X2.MainBC.AsyncDrawPath(Rhombus2.Clone, BrushLineColor2, True, 0))
End If
' left
If p1.X > Click.X Then
Rhombus3.Initialize(p4.X, p4.Y).LineTo(p8.X, p8.Y).LineTo(p5.X,p5.Y).LineTo(p1.X,p1.Y)
GS.DrawingTasks.Add(X2.MainBC.AsyncDrawPath(Rhombus3.Clone, BrushLineColor3, True, 0))
End If
' right
If p2.X < Click.X Then
Rhombus4.Initialize(p2.X, p2.Y).LineTo(p6.X, p6.Y).LineTo(p7.X,p7.Y).LineTo(p3.X,p3.Y)
GS.DrawingTasks.Add(X2.MainBC.AsyncDrawPath(Rhombus4.Clone, BrushLineColor4, True, 0))
End If
' ' back
' Rhombus5.Initialize(p1.X, p1.Y).LineTo(p2.X, p2.Y).LineTo(p3.X,p3.Y).LineTo(p4.X,p4.Y)
' GS.DrawingTasks.Add(X2.MainBC.AsyncDrawPath(Rhombus5.Clone, BrushLineColor5, True, 0))
End Sub