Tengo un erro con los fondos y las coliciones

-- coding: utf-8 --

import pilasengine
pilas = pilasengine.iniciar(titulo=“Pasar por escenas con logica”)
#Estas variables globales son las que nos ayudan a darle logica
entrar_por_izquierda = True
entrar_por_arriba = True
lateral = True
Perder = True
def incorrecto(self):
global Perder
Perder = True
pilas.escenas.Perdio()

class MiActor(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = (‘data/alien.png’)
global entrar_por_izquierda
global entar_por_arriba
global lateral
global Perder
self.escala = 0.75
self.velocidad = -10

	if Perder == True:
		self.x = 0
		self.y = 0
	else:
		if lateral == True:
			self.y = 0
			if entrar_por_izquierda == True: #llamamos a la variable global
				self.x = -260		#y se comprueba por donde debe entrar el actor
			else:
				self.x = 260
		else:
			self.x = 0
			if entrar_por_arriba == True:
				self.y = 180
			else:
				self.y = -180
	self.aprender('limitadoabordesdepantalla')
	self.aprender('moverseconelteclado')

class Puerta_abajo(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = (‘data/piedra_media.png’)
self.y = -215
self.x = 0
self.escala = 1.5
class Puerta_arriba(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = (‘data/piedra_media.png’)
self.y = 215
self.x = 0
self.escala = 1.5
class Puerta_izquierda(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = (‘data/piedra_media.png’)
self.y = 0
self.x = -300
self.escala = 1.5
class Puerta_derecha(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = (‘data/piedra_media.png’)
self.y = 0
self.x = 300
self.escala = 1.5
class Pregunta(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = (‘data/piedra_media.png’)
self.y = 0
self.x = -50
self.escala = 1.5

class Perdio(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.MiActor()
self.pilas.actores.Puerta_abajo()

	pilas.colisiones.agregar("MiActor","Puerta_abajo", self.Reeiniciar)
	pilas.avisar("GAME OVER")


def Reeiniciar(self):
	global Perder
	Perder = True
	pilas.escenas.Escena_01()  #Escena de final FALTA FONDO

class Menu(pilasengine.escenas.Escena):
def iniciar(self):
def iniciar_juego():
pilas.escenas.Escena_01()
def salir():
pilas.terminar()
btn_1 = pilas.interfaz.Boton(“Iniciar Juego”)
btn_1.conectar(iniciar_juego)

	btn_2 = pilas.interfaz.Boton("Salir")
	btn_2.conectar(salir)
	btn_2.y = -50

class Escena_01(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar('MiActor', 'Puerta_derecha', self.pasar_a_derecha)
	pilas.avisar('Escena 1')

def pasar_a_derecha(self):
		global entrar_por_izquierda
		global Perder
		global lateral
		global entrar_por_arriba
		Perder = False
		entrar_por_izquierda = True
		lateral = True
		entrar_por_arriba = True
		pilas.escenas.Escena_02()

class Escena_02(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Volley()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Pregunta()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Pregunta", self.Preguntar)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.pasar_a_arriba)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.pasar_a_izquierda)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Incorrecto)
	pilas.avisar('Escena 2')


def Preguntar(self):
	txt = pilas.actores.Texto("Pregunta\ncual de estos corresponde al agua?")
	txt.escala = 1
	txt_1 = pilas.actores.Texto("H2O")
	txt_1.x = 0
	txt_1.y = 190
	txt_2 = pilas.actores.Texto("Fe4")
	txt_2.x = 0
	txt_2.y = -190
	txt_3 = pilas.actores.Texto("O2H")
	txt_3.x = 250
	txt_3.y = 0
def pasar_a_arriba(self):
	global lateral
	global entrar_por_izquierda
	global entrar_por_arriba
	entrar_por_arriba = False
	lateral = False
	entrar_por_izquierda = False
	pilas.escenas.Escena_03()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()
def pasar_a_izquierda(self):
	global lateral
	global entrar_por_izquierda
	lateral = True
	entrar_por_izquierda = False
	pilas.escenas.Escena_01()

class Escena_03(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.Pregunta()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Pregunta", self.Preguntar)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.pasar_a_abajo)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Correcto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.Incorrecto)
	pilas.avisar("Escena 3")


def pasar_a_abajo(self):
	global lateral
	global entrar_por_arriba
	lateral = False
	entrar_por_arriba = True
	pilas.escenas.Escena_02()
def Correcto(self):
	global entrar_por_izquierda
	global lateral
	entrar_por_izquierda = True
	lateral = True
	pilas.escenas.Escena_04()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()
def Preguntar(self):
	txt = pilas.actores.Texto("Pregunta:\nAl sepillarse los dientes..")
	txt.escala = 1
	txt_1 = pilas.actores.Texto("Dejar correr el agua ATR")#ARRIBA
	txt_1.x = 0
	txt_1.y = 190
	txt_2 = pilas.actores.Texto("")#ABAJO
	txt_2.x = 0
	txt_2.y = -190
	txt_3 = pilas.actores.Texto("Usar un vaso")#DERECHA
	txt_3.x = 240
	txt_3.y = 20
	txt_4 = pilas.actores.Texto("chiqui chiqui")#Izquierda
	txt_4.x = -250
	txt_4.y = 0

class Escena_04(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.Pregunta()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Pregunta", self.Preguntar)
	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.pasar_a_izquierda)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Correcto)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.Incorrecto)
	pilas.avisar("Escena 4")

def Correcto(self):
	global entrar_por_izquierda
	global lateral
	global entrar_por_arriba
	entrar_por_arriba = True
	entrar_por_izquierda = False
	lateral = False
	pilas.escenas.Escena_05()
def pasar_a_izquierda(self):
		global entrar_por_izquierda
		global lateral
		lateral = True
		entrar_por_izquierda = False
		pilas.escenas.Escena_03()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()
def Preguntar(self):
	txt = pilas.actores.Texto("Pregunta:\nComo lavar los platos?")
	txt.escala = 1
	txt_1 = pilas.actores.Texto("Dejar correr el agua ATR")#ARRIBA
	txt_1.x = 0
	txt_1.y = 190
	txt_2 = pilas.actores.Texto("Enjabonar primero\nEnjuagar despues")#ABAJO
	txt_2.escala = 0.60
	txt_2.x = 0
	txt_2.y = -180
	txt_3 = pilas.actores.Texto("Enjabonar y enjuagar\ntodo al mismo tiempo")#DERECHA
	txt_3.escala = 0.60
	txt_3.x = 240
	txt_3.y = 30
	txt_4 = pilas.actores.Texto("")#Izquierda
	txt_4.x = -250
	txt_4.y = 0

class Escena_05(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.Pregunta()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor","Pregunta", self.Preguntar)
	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Correcto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.pasar_a_arriba)
	pilas.avisar("Escena 5")

def Correcto(self):
	global entrar_por_izquierda
	global lateral
	global entrar_por_arriba
	entrar_por_izquierda = True
	lateral = True
	entrar_por_arria
	pilas.escenas.Escena_06()

def pasar_a_arriba(self):
		global entrar_por_izquierda
		global lateral
		global entrar_por_arriba
		entrar_por_arriba = False
		lateral = False
		entrar_por_izquierda = False
		pilas.escenas.Escena_04()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()
def Preguntar(self):
	txt = pilas.actores.Texto("Pregunta:\nQue hacer con agua salada?")
	txt.escala = 1
	txt_1 = pilas.actores.Texto("")#ARRIBA
	txt_1.x = 0
	txt_1.y = 190
	txt_2 = pilas.actores.Texto("Hacer Mate ATR")#ABAJO
	txt_2.escala = 0.60
	txt_2.x = 0
	txt_2.y = -180
	txt_3 = pilas.actores.Texto("Destilarla\n   zo    \nbaniarse")#DERECHA
	txt_3.escala = 1
	txt_3.x = 240
	txt_3.y = 30
	txt_4 = pilas.actores.Texto("Tomarla")#Izquierda
	txt_4.x = -250
	txt_4.y = 0

class Escena_06(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.pasar_a_izquierda)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.Incorrecto)
	pilas.avisar("Escena 6")
def pasar_a_izquierda(self):
		global entrar_por_izquierda
		global lateral
		lateral = True
		entrar_por_izquierda = False
		pilas.escenas.Escena_03()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()

class Escena_07(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.pasar_a_izquierda)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.Incorrecto)
	pilas.avisar("Escena 7")
def pasar_a_izquierda(self):
		global entrar_por_izquierda
		global lateral
		lateral = True
		entrar_por_izquierda = False
		pilas.escenas.Escena_03()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()

class Escena_08(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.pasar_a_izquierda)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.Incorrecto)
	pilas.avisar("Escena 8")
def pasar_a_izquierda(self):
		global entrar_por_izquierda
		global lateral
		lateral = True
		entrar_por_izquierda = False
		pilas.escenas.Escena_03()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()

class Escena_09(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.pasar_a_izquierda)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.Incorrecto)
	pilas.avisar("Escena 8")
def pasar_a_izquierda(self):
		global entrar_por_izquierda
		global lateral
		lateral = True
		entrar_por_izquierda = False
		pilas.escenas.Escena_03()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()

class Escena_10(pilasengine.escenas.Escena):
def iniciar(self):
self.fondo = pilas.fondos.Pasto()
self.pilas.actores.Puerta_abajo()
self.pilas.actores.Puerta_arriba()
self.pilas.actores.Puerta_izquierda()
self.pilas.actores.Puerta_derecha()
self.pilas.actores.MiActor()

	pilas.colisiones.agregar("MiActor", "Puerta_izquierda", self.pasar_a_izquierda)
	pilas.colisiones.agregar("MiActor", "Puerta_abajo", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_derecha", self.Incorrecto)
	pilas.colisiones.agregar("MiActor", "Puerta_arriba", self.Incorrecto)
	pilas.avisar("Escena 8")
def pasar_a_izquierda(self):
		global entrar_por_izquierda
		global lateral
		lateral = True
		entrar_por_izquierda = False
		pilas.escenas.Escena_03()
def Incorrecto(self):
	global Perder
	Perder = True
	pilas.escenas.Perdio()

#ACTORES NECESARIOS
pilas.actores.vincular(MiActor)
pilas.actores.vincular(Puerta_izquierda)
pilas.actores.vincular(Puerta_derecha)
pilas.actores.vincular(Puerta_arriba)
pilas.actores.vincular(Puerta_abajo)
pilas.actores.vincular(Pregunta)
#ESCENAS NECESARIAS
pilas.escenas.vincular(Menu)
pilas.escenas.vincular(Perdio)
pilas.escenas.vincular(Escena_01)
pilas.escenas.vincular(Escena_02)
pilas.escenas.vincular(Escena_03)
pilas.escenas.vincular(Escena_04)
pilas.escenas.vincular(Escena_05)
pilas.escenas.vincular(Escena_06)
pilas.escenas.vincular(Escena_07)
pilas.escenas.vincular(Escena_08)
pilas.escenas.vincular(Escena_09)
pilas.escenas.vincular(Escena_10)
pilas.escenas.Menu()
pilas.ejecutar()

Buenas, @JulianAhumada86!

Antes que nada, deberías leer este post para poder indexar tu código correctamente, máxime siendo un código tan largo :slight_smile:

Un saludo! :wink:

Buenas, @JulianAhumada86!

Bueno he testado tu juego y… a mí me funciona todo correctamente! :hushed:

El único error que he encontrado es que habías escrito “arria” en vez de “arriba” en una linea, pero corrigiendo eso no me dió ningún otro error.

Los fondos que has puesto se ven todos (bueno, solo hay una escena con el fondo “volley”, y las demás son con “pasto”). En cuanto a las colisiones, he llegado perfectamente hasta la escena 6 colisonando con las puertas correctamente, y cuando he perdido tambien se han producido las colisiones que me llevan a la pantalla de game over.

Podrías especificar más concretamente qué linea es la que te da el error?

Un saludo! :wink: