Compare commits

..

4 Commits

5 changed files with 57 additions and 9 deletions

View File

@@ -29,12 +29,18 @@ Supports combos like Ctrl+Shift+Alt+Cmd. For people with more keybinds than fing
![Modifier Keys](https://github.com/user-attachments/assets/6d492134-f929-4e3e-a6c6-a89cf16cd62f) ![Modifier Keys](https://github.com/user-attachments/assets/6d492134-f929-4e3e-a6c6-a89cf16cd62f)
### ↗️ Middle Mouse Button Panning ### ↗️ Editor Middle Mouse Button Panning
Hold MMB in the editor to pan around the scene, it'll reset when you go back to live. Hold MMB in the editor to pan around the scene, it'll reset when you go back to live.
![Panning](https://github.com/user-attachments/assets/b8687b69-fc84-43c9-950b-70395ae54820) ![Panning](https://github.com/user-attachments/assets/b8687b69-fc84-43c9-950b-70395ae54820)
### ↗️ View Mode MMB Shake
Hold MMB in view mode to shake your character, Show off them physics!
![viewmodeshake](https://github.com/user-attachments/assets/536dc4ae-0562-494f-8cd0-2d2ef115f085)
### 🎤 Microphone Fixes ### 🎤 Microphone Fixes

Binary file not shown.

View File

@@ -49,6 +49,12 @@ var initialPanPosition = Vector2.ZERO
var initialCameraOffset = Vector2.ZERO var initialCameraOffset = Vector2.ZERO
var cameraOffset = Vector2.ZERO var cameraOffset = Vector2.ZERO
#View Mode Panning
var viewModePanning = false
var initialViewPanPosition = Vector2.ZERO
var viewPanOffset = Vector2.ZERO
var viewPanLerpSpeed = 3.0
var bounceChange = 0.0 var bounceChange = 0.0
#IMPORTANT #IMPORTANT
@@ -148,6 +154,16 @@ func _process(delta):
yVel += bounceGravity*0.0166 yVel += bounceGravity*0.0166
# Handle view mode panning lerp back to center
if !editMode:
if !viewModePanning:
# Lerp back to center when not actively panning
viewPanOffset = viewPanOffset.lerp(Vector2.ZERO, viewPanLerpSpeed * delta)
# Apply view pan offset to the root character (affects physics)
origin.position = (get_viewport().get_visible_rect().size * 0.5) + viewPanOffset
updateCameraPosition()
if Input.is_action_just_pressed("openFolder"): if Input.is_action_just_pressed("openFolder"):
OS.shell_open(ProjectSettings.globalize_path("user://")) OS.shell_open(ProjectSettings.globalize_path("user://"))
@@ -173,15 +189,24 @@ func _input(event):
isPanning = false isPanning = false
else: else:
if event.pressed: if event.pressed:
# Reset camera in view mode # Start view mode panning
resetCameraPosition() viewModePanning = true
initialViewPanPosition = event.global_position
else:
# Stop view mode panning
viewModePanning = false
# Handle mouse movement during panning # Handle mouse movement during edit mode panning
elif editMode and event is InputEventMouseMotion and isPanning: elif editMode and event is InputEventMouseMotion and isPanning:
var totalDelta = event.global_position - initialPanPosition var totalDelta = event.global_position - initialPanPosition
# Calculate new camera offset from initial position plus total movement # Scale pan distance based on zoom level for more intuitive panning
cameraOffset = initialCameraOffset - totalDelta # Higher zoom (closer) = less movement, lower zoom (farther) = more movement
var zoomScale = 1.0 / camera.zoom.x
var scaledDelta = totalDelta * zoomScale
# Calculate new camera offset from initial position plus scaled movement
cameraOffset = initialCameraOffset - scaledDelta
# Update camera position immediately # Update camera position immediately
var s = get_viewport().get_visible_rect().size var s = get_viewport().get_visible_rect().size
@@ -195,6 +220,15 @@ func _input(event):
pushUpdates.position.y = controlPanel.position.y pushUpdates.position.y = controlPanel.position.y
pushUpdates.position.x = editControls.position.x pushUpdates.position.x = editControls.position.x
# Handle mouse movement during view mode panning
elif !editMode and event is InputEventMouseMotion and viewModePanning:
var totalDelta = event.global_position - initialViewPanPosition
# Scale pan distance for view mode (less sensitive than edit mode)
# Invert the movement so dragging right moves character right (not left)
var panSensitivity = 0.5
viewPanOffset = -totalDelta * panSensitivity
func followShadow(): func followShadow():
# Shadow disabled for selected sprites # Shadow disabled for selected sprites
shadow.visible = false shadow.visible = false
@@ -296,6 +330,8 @@ func updateCameraPosition():
func resetCameraPosition(): func resetCameraPosition():
cameraOffset = Vector2.ZERO cameraOffset = Vector2.ZERO
isPanning = false isPanning = false
viewPanOffset = Vector2.ZERO
viewModePanning = false
updateCameraPosition() updateCameraPosition()
Global.pushUpdate("Camera reset to center.") Global.pushUpdate("Camera reset to center.")
@@ -315,6 +351,10 @@ func swapMode():
# Reset camera when entering view mode # Reset camera when entering view mode
if !editMode: if !editMode:
resetCameraPosition() resetCameraPosition()
else:
# Reset view mode panning when entering edit mode
viewPanOffset = Vector2.ZERO
viewModePanning = false
get_viewport().transparent_bg = !editMode get_viewport().transparent_bg = !editMode
if Global.backgroundColor.a != 0.0: if Global.backgroundColor.a != 0.0:

View File

@@ -14358,6 +14358,7 @@ text = "Zoom : 100%"
horizontal_alignment = 2 horizontal_alignment = 2
[node name="VersionLabels" type="Node2D" parent="ControlPanel"] [node name="VersionLabels" type="Node2D" parent="ControlPanel"]
position = Vector2(-205, 59)
[node name="Label" type="Label" parent="ControlPanel/VersionLabels"] [node name="Label" type="Label" parent="ControlPanel/VersionLabels"]
offset_left = -713.0 offset_left = -713.0
@@ -14378,10 +14379,11 @@ label_settings = SubResource("LabelSettings_qg0do")
[node name="versionNo" type="Label" parent="ControlPanel/VersionLabels/Label2"] [node name="versionNo" type="Label" parent="ControlPanel/VersionLabels/Label2"]
layout_mode = 0 layout_mode = 0
offset_left = 144.0 offset_left = 144.0
offset_top = 40.0 offset_top = 17.0
offset_right = 282.0 offset_right = 282.0
offset_bottom = 74.0 offset_bottom = 60.0
text = "v1.4.5" text = "v1.4.5
Litruv"
label_settings = SubResource("LabelSettings_xvf50") label_settings = SubResource("LabelSettings_xvf50")
[node name="EditControls" type="Node2D" parent="."] [node name="EditControls" type="Node2D" parent="."]