mirror of
https://github.com/litruv/PNGTuber-Plus.git
synced 2026-07-25 19:16:02 +10:00
Compare commits
4 Commits
v2025.07.2
...
v2025.07.2
| Author | SHA1 | Date | |
|---|---|---|---|
| 32a67a6617 | |||
| fb0c7a9e3b | |||
| f0ce00b23b | |||
| d4a9f5a0b0 |
@@ -29,12 +29,18 @@ Supports combos like Ctrl+Shift+Alt+Cmd. For people with more keybinds than fing
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
### ↗️ 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.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### ↗️ View Mode MMB Shake
|
||||||
|
|
||||||
|
Hold MMB in view mode to shake your character, Show off them physics!
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
### 🎤 Microphone Fixes
|
### 🎤 Microphone Fixes
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
BIN
bin/~libgdexample.windows.template_debug.x86_64.dll
Normal file
BIN
bin/~libgdexample.windows.template_debug.x86_64.dll
Normal file
Binary file not shown.
@@ -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
|
||||||
@@ -194,6 +219,15 @@ func _input(event):
|
|||||||
viewerArrows.position = editControls.position
|
viewerArrows.position = editControls.position
|
||||||
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
|
||||||
@@ -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:
|
||||||
|
|||||||
@@ -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="."]
|
||||||
|
|||||||
Reference in New Issue
Block a user