Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extends Sprite2D
- var dragging : bool = false
- var of : Vector2 = Vector2(0,0)
- @export var perfect_position : Vector2 = Vector2(0,0)
- @export var position_forgiveness : Vector2 = Vector2(20,20)
- @onready var audio_stream_player: AudioStreamPlayer = $AudioStreamPlayer
- @onready var area_2d: Area2D = $Area2D
- # Called every frame. 'delta' is the elapsed time since the previous frame.
- func _process(_delta: float) -> void:
- if dragging:
- position = get_global_mouse_position() - of
- func _on_area_2d_input_event(_viewport: Node, event: InputEvent, _shape_idx: int) -> void:
- if event is InputEventMouseButton:
- if event.pressed:
- ######
- var parameters: PhysicsPointQueryParameters2D = PhysicsPointQueryParameters2D.new()
- parameters.position = get_global_mouse_position()
- parameters.collide_with_areas = true
- var object_clicked = get_world_2d().direct_space_state.intersect_point(parameters)
- var colliders= object_clicked.map(
- func(dict):
- return dict.collider
- )
- colliders.sort_custom(
- func(c1,c2):
- return c1.z_index<c2.z_index
- )
- ######
- if colliders[-1]==area_2d:
- dragging = true
- of = get_global_mouse_position() - global_position
- #### Reorder z_index of all clothing items ####
- var previous_last = Main.clothing_list[-1]
- if(self!=previous_last):
- Main.clothing_list.erase(self)
- Main._order_clothing_list()
- Main.clothing_list.push_back(self)
- self.z_index = Main.clothing_list.size()
- area_2d.z_index = Main.clothing_list.size()
- audio_stream_player.pitch_scale =1.5
- audio_stream_player.play()
- dragging = true
- of = get_global_mouse_position() - global_position
- elif event.pressed == false && abs(position.x-perfect_position.x)<=position_forgiveness.x && abs(position.y-perfect_position.y)<=position_forgiveness.y:
- dragging = false
- position = perfect_position
- audio_stream_player.pitch_scale =0.5
- audio_stream_player.play()
- elif event.pressed == false:
- dragging = false
- audio_stream_player.pitch_scale =0.5
- audio_stream_player.play()
Advertisement
Add Comment
Please, Sign In to add comment