no reconoce el antiguo type de Godot 2 en Godot 3.2

cocomanga

Hola a Todos mi pregunta es la siguiente este codigo lo saque de un tutorial de godot 2 pero el pero me marca un error en donde dice event.type

y saca el siguiente anuncio ----- > Invalid get index 'type' (on base: 'InputEventMouseMotion')

func _input(event):
	if event.type  ==  InputEvent.MOUSE_BUTTON  &&  event.is_pressed():
		var ball =  ball_scene.instance()
		ball.set_pos(get_pos()  -  Vector2(0, 16))

Asi seria un poco ahora (lo digo por el pos y eso )

func _input(event):
	if event.type  ==  InputEvent.MOUSE_BUTTON  &&  event.is_pressed():
		var ball =  ball_scene.instance()
		ball.set_position(get_position()  -  Vector2(0, 16))

Por si las dudas previo habia metido un

func _ready():
	set_process_input(true)

Porfavor no se preocupen por la identacion porque no la coloco es por cosas del foro que no la coge bien

Kalgator

Pasar de la version 2 a la 3 (que no 3.0/1 a la 3.2) cambian muchas cosas, mirate la guia de godot de la 3.0 por que ya no se hace asi

AikonCWD

Olvídate del "type" y usa el operador "is". Mira este ejemplo

1
cocomanga

Muchas gracias al amigo @AikonCWD porque la verdad que solo no lo pude solucionar

Dejo la solucion a este problema del type que se usaba en Godot 2 con el fin de que se pueda adaptar al Godot 3.2 (donde desaparecio) importante tener en cuenta que:

  1. En el event.type se debe suprimir el .type
  2. En el InputEvent.MOUSE_BUTTON hay que cambiarlo por InputEventMouseButton

Les dejo el codigo tal cual debe ser usado (Ojo tengan encuenta que el foro no coge bien la identacion por lo que eso si ya les queda de tarea)

func _input(event):
	if event is InputEventMouseButton && event.is_pressed():
		var ball =  ball_scene.instance()
		ball.set_position(get_position()  -  Vector2(0, 16))

Usuarios habituales

  • cocomanga
  • AikonCWD
  • Kalgator