Added Mirror and Rotation

This commit is contained in:
2025-07-22 06:21:17 +10:00
parent 95476cfd57
commit fc6fa30c85
6 changed files with 118 additions and 1 deletions

View File

@@ -100,6 +100,11 @@ var toggle = "null"
#Wobble Sync Group
var wobbleSyncGroup = ""
#Transform
var staticRotation = 0.0
var mirrorHorizontal = false
var mirrorVertical = false
func _ready():
Global.main.spriteVisToggles.connect(visToggle)
@@ -264,6 +269,7 @@ func _process(delta):
rotationalDrag(length,delta)
stretch(length,delta)
applyStaticTransform()
if grabDelay > 0:
grabDelay -= 1
@@ -431,7 +437,7 @@ func rotationalDrag(length, delta):
var physicsMultiplier = Global.main.physicsTimeMultiplier if Global.main else 10.0
var scaledTime = time * physicsMultiplier
var rotationWobble = sin(scaledTime * rFrq) * (rotationRange * rAmp * 0.01)
var totalRotation = yvel + rotationWobble
var totalRotation = yvel + rotationWobble + staticRotation
# Use delta-based lerp for smooth rotation with slower speed
var lerpFactor = clamp(delta * (physicsMultiplier * 1.0), 0.0, 1.0) # Reduced from 15.0 to 4.0
@@ -446,6 +452,20 @@ func stretch(length, delta):
var lerpFactor = clamp(delta * (physicsMultiplier * 30.0), 0.0, 1.0)
sprite.scale = lerp(sprite.scale, target, lerpFactor)
## Apply static transformation (mirroring)
func applyStaticTransform():
var scale_x = 1.0
var scale_y = 1.0
if mirrorHorizontal:
scale_x = -1.0
if mirrorVertical:
scale_y = -1.0
# Apply mirror scaling while preserving the stretch scale
var current_scale = sprite.scale
sprite.scale = Vector2(abs(current_scale.x) * scale_x, abs(current_scale.y) * scale_y)
func changeCollision(enable):
grabArea.monitorable = enable
grabArea.monitorable = enable