freezy/VisualPinball.Engine

Add FlipperNudge to flippers

Open

#437 geöffnet am 29. Aug. 2022

Auf GitHub ansehen
 (0 Kommentare) (0 Reaktionen) (1 zugewiesene Person)C# (72 Forks)github user discovery
enhancementhelp wantedphysics

Repository-Metriken

Stars
 (498 Stars)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

If a ball is on a flipper and the other flipper is pressed, the ball gets a little nudge. This is for example used to slow down the ball, when coming from the inlane.

This is the current code, that is used by @rothbauerw and VPW folks for this

Sub FlipperNudge(Flipper1, Endangle1, EOSNudge1, Flipper2, EndAngle2)
	Dim b, BOT
	BOT = GetBalls

	If Flipper1.currentangle = Endangle1 and EOSNudge1 <> 1 Then
		EOSNudge1 = 1
		'debug.print Flipper1.currentangle &" = "& Endangle1 &"--"& Flipper2.currentangle &" = "& EndAngle2
		If Flipper2.currentangle = EndAngle2 Then 
			For b = 0 to Ubound(BOT)
				If FlipperTrigger(BOT(b).x, BOT(b).y, Flipper1) Then
					'Debug.Print "ball in flip1. exit"
					exit Sub
				end If
			Next
			For b = 0 to Ubound(BOT)
				If FlipperTrigger(BOT(b).x, BOT(b).y, Flipper2) Then
					BOT(b).velx = BOT(b).velx / 1.3
					BOT(b).vely = BOT(b).vely - 0.5
				end If
			Next
		End If
	Else 
		If Abs(Flipper1.currentangle) > Abs(EndAngle1) + 30 then 
				EOSNudge1 = 0
		end if
	End If
End Sub

Contributor Guide