a horse, distended
This commit is contained in:
parent
30f12832b5
commit
abc054d9f6
3 changed files with 82 additions and 30 deletions
40
objects/horse/dragable_body.gd
Normal file
40
objects/horse/dragable_body.gd
Normal file
|
@ -0,0 +1,40 @@
|
|||
extends RigidBody2D
|
||||
|
||||
|
||||
@export var drag_spring: float = 100.0
|
||||
|
||||
|
||||
var held: bool = false
|
||||
|
||||
var _drag_point: Vector2 = Vector2.ZERO
|
||||
|
||||
|
||||
func _init() -> void:
|
||||
freeze_mode = FREEZE_MODE_KINEMATIC
|
||||
input_pickable = true
|
||||
input_event.connect(_on_input_event)
|
||||
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if held:
|
||||
global_position = get_global_mouse_position() - (to_global(_drag_point) - global_position)
|
||||
|
||||
|
||||
func _on_input_event(viewport: Node, event: InputEvent, shape_idx: int) -> void:
|
||||
if event is InputEventMouseButton:
|
||||
if event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
|
||||
_start_drag()
|
||||
if not event.pressed and event.button_index == MOUSE_BUTTON_LEFT:
|
||||
_end_drag()
|
||||
|
||||
|
||||
func _start_drag() -> void:
|
||||
held = true
|
||||
freeze = true
|
||||
_drag_point = get_local_mouse_position()
|
||||
|
||||
|
||||
func _end_drag() -> void:
|
||||
held = false
|
||||
freeze = false
|
||||
apply_central_impulse(Input.get_last_mouse_velocity())
|
Loading…
Add table
Add a link
Reference in a new issue