Godot 3.1 Error al cargar el nuevo nivel, una ayuda !!!

cocomanga

Hola a todos un saludo !!!
Disculpen mi pregunta es esta con este codigo no me coje el nuevo mundo con el codigo que tenia antes que dejo abajo si lo pasa del 1 al 2, pero claro hasta ahi llega, me gustaria saber donde esta el error por lo que les envio el proyecto completo Gracias por su respuesta ???

No se que se me pasa porque el codigo lo saque de un tutorial de 3.06 asi que por ahi y sea algo que cambio, pero conste complila y todo

Publico esto porque no es la primera vez que me arriba este problema

extends Area2D
export (String, FILE, "*.tscn") var next_world

func _physics_process(delta):
	var bodies = get_overlapping_bodies()
	for body in bodies:
		if body.name == "Player":
			get_tree().change_scene("next_world")

Aca abajo queda el codigo viejo con la pregunta

extends Area2D

func _physics_process(delta):
	var bodies = get_overlapping_bodies()
	print (bodies)
	for body in bodies:
		if body.name == "Player":
			get_tree().change_scene("res://Scenes/Word2.tscn")

En caso de que deseen como esta el codigo completo del player se los dejo aca

extends KinematicBody2D

const UP = Vector2(0, -1) 

const GRAVITY = 20
const ACCELERATION = 50  
const MAX_SPEED = 200
const JUMP_HEIGHT = -550 var motion = Vector2() func _physics_process(delta): motion.y += GRAVITY
var friction = false if Input.is_action_pressed("ui_right"): motion.x = min(motion.x + ACCELERATION, MAX_SPEED) $Sprite.flip_h = false $Sprite.play("Run") elif Input.is_action_pressed("ui_left"): motion.x = max(motion.x - ACCELERATION, -MAX_SPEED) $Sprite.flip_h = true $Sprite.play("Run") else: friction = true $Sprite.play("Idle") if is_on_floor(): if Input.is_action_just_pressed("ui_up"): motion.y = JUMP_HEIGHT if friction == true: motion.x = lerp(motion.x, 0, 0.2) else: if motion.y < 0: $Sprite.play("Jump") else: $Sprite.play("Fall") if friction == true: motion.x = lerp(motion.x, 0, 0.5) motion = move_and_slide(motion, UP)

Gracias !!!!

Hukha

Este contenido debería ir en el SubForo de GameDev, a ver si algún mod te lo mueve
Respecto a la duda, tenemos a @AikonCWD y a @Kalgator como abanderados de GODOT, demostrad vuestra valía!

Kalgator

No entiendo tu pregunta :psyduck:

Que estás en una pantalla y quieres ir a otra y quieres guardar cosas? XD

AikonCWD

#1

get_tree().change_scene(next_world)

next_world es una variable, así que ponlo sin comillas.

edit: de todas formas el código no está correcto. Para detectar si entras en el area2d lo mejor es usar una señal, en lugar de un check dentro del process()

1
cocomanga

Muchas Gracias a todos los que leyeron mi post y a todos los que me respondieron.

Mil y diez mil gracias al buen amigo de Amigo de AikonCWD si ese era el ERROR haberle dejado las comillas, se las saque y marcho GENIAL

get_tree().change_scene(next_world)

Ya prove el codigo y si perfecto cambia de mundo, como es norma

extends Area2D
export (String, FILE, "*.tscn") var next_world

func _physics_process(delta):
var bodies = get_overlapping_bodies()
for body in bodies:
if body.name == "Player":
get_tree().change_scene(next_world)

Usuarios habituales

  • cocomanga
  • AikonCWD
  • Kalgator
  • Hukha