'This code is similar to the code that moves the real bird.
Private Sub RunSimulation (gs As X2GameStep)
If gs.ShouldDraw Then
SimulationBird.GravityScale = 0
SimulationBird.LinearVelocity = X2.CreateVec2(0, 0)
For i = 1 To 20
Dim vec As B2Vec2 = HookCenter.Body.Position.CreateCopy
vec.SubtractFromThis(SimulationBird.Position)
Dim angle As Float = ATan2(vec.Y, vec.X)
If SimulationBird.Position.X < HookCenter.Body.Position.X Then
Dim length As Float = vec.Length
Dim force As B2Vec2 = X2.CreateVec2(Cos(angle), Sin(angle))
force.MultiplyThis(1.5 * length)
SimulationBird.ApplyForce(force, SimulationBird.Position)
Else
SimulationBird.GravityScale = 1
End If
SimulationWorld.TimeStep(X2.TimeStepMs / 1000 * 4, 1, 1) '<--- let the simulation play
Dim v As B2Vec2 = X2.WorldPointToMainBC(SimulationBird.Position.X, SimulationBird.Position.Y)
X2.LastDrawingTasks.Add(X2.MainBC.AsyncDrawCircle(v.X, v.Y, 10, HintBrush, True, 0))
Next
End If
End Sub