freezy/VisualPinball.Engine

Add FlipperNudge to flippers

Open

#437 opened on Aug 29, 2022

View on GitHub
 (0 comments) (0 reactions) (1 assignee)C# (72 forks)github user discovery
enhancementhelp wantedphysics

Repository metrics

Stars
 (498 stars)
PR merge metrics
 (PR metrics pending)

Description

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