Oh, it still not solved yet. It seems got a latency in Input function,
I try to solve it by remove the Input function and make it into the _process
function, but still not work. Why this happened?
extends Node2D
# This demo is an example of controling a high number of 2D objects with logic
# and collision without using nodes in the scene. This technique is a lot more
# efficient than using instancing and nodes, but requires more programming and
# is less visual. Bullets are managed together in the `bullets.gd` script.
# The number of bullets currently touched by the player.
var touching = 0
onready var sprite = $AnimatedSprite
var arrow = load("res://arrow.png")
var beam = load("res://beam.png")
func _ready():
# The player follows the mouse cursor automatically, so there's no point
# in displaying the mouse cursor.
# Input.set_mouse_mode(Input.MOUSE_MODE_HIDDEN)
Input.set_custom_mouse_cursor(arrow)
# remove this
#func _input(event):
# if event is InputEventMouseMotion:
# position = event.position
# add this
func _process(delta):
position = get_viewport().get_mouse_position()
func _on_body_shape_entered(_body_id, _body, _body_shape, _local_shape):
touching += 1
if touching >= 1:
$AnimatedSprite.frame = 1
func _on_body_shape_exited(_body_id, _body, _body_shape, _local_shape):
touching -= 1
if touching == 0:
$AnimatedSprite.frame = 0
@Calinou do you mean change the cursor like this? Seems not work.