5. Grenzen en Vloeiende Beweging

Voeg grenzen toe met Mathf.Clamp en maak beweging vloeiender met interpolation

Overzicht

Je ruimteschip beweegt nu, maar het kan buiten het speelveld vliegen! In dit hoofdstuk voeg je grenzen toe, maak je de beweging vloeiender, en zorg je dat het schip binnen het zichtbare gebied blijft.

Hoogtegrenzen toevoegen (clamping)

Het ruimteschip kan nu te hoog vliegen of door de grond crashen! Voeg verticale grenzen toe.

Nieuwe Godot-specifieke elementen:

circle-check

Banking effect toevoegen

Laat het schip visueel laten kantelen (banken) wanneer het draait. Dit maakt de beweging veel realistischer - net zoals een vliegtuig kantelt tijdens een bocht!

Nieuwe Godot-specifieke elementen:

circle-check
circle-info

Waarom turnInput? Sla de turn richting op (-1, 0, of 1) om het schip in die richting te laten kantelen. Als je naar links draait (turnInput = 1), kantelt het schip naar links (positieve bank angle). Experimenteer met Bank Angle in de Inspector!

Smooth banking met interpolatie

Het banking effect is nu instant - het schip springt direct naar de volle bank angle. Maak dit vloeiender met interpolatie (lerping)!

Nieuwe Godot-specifieke elementen:

  • Mathf.Lerp(a, b, weight)arrow-up-right - Lineaire interpolatie tussen twee waarden

    • a = startwaarde, b = doelwaarde, weight = hoe ver tussen de twee (0 tot 1)

    • Bij weight = 0 krijg je a, bij weight = 1 krijg je b, bij 0.5 krijg je het midden

    • Door weight als bankSpeed * delta te gebruiken krijg je een vloeiende, frame-rate onafhankelijke transitie

    • De transitie speed is afhankelijk van bankSpeed (instelbaar in de Inspector!)

  • Converteren in radians - Rotation.Z werkt altijd met radialen, dus we moeten bankAngle (in graden) converteren met Mathf.DegToRad(). Houd bankAngle in de Inspector in graden omdat dat intuïtiever is (30 vs ~0.52)

circle-check

Smooth boost met interpolatie

In het vorige hoofdstuk heb je een boost functie toegevoegd, maar de snelheidsverandering was abrupt en voelde niet vloeiend aan. Verbeter dit met interpolatie - net zoals je bij de banking deed!

Nieuwe Godot-specifieke elementen:

  • Smooth speed transitie met Lerp - We interpoleren van de huidige speed naar de target speed

Boost transitie speed

circle-check

Complete Script

chevron-rightKlik hier voor het volledige PlayerController.cs scripthashtag

Laatst bijgewerkt