Tutorial renovado de mario

Saludos, quería comentarles que recién subimos un tutorial actualizado a la versión nueva de pilas. El tutorial Mario (de Fernando Salamero) adaptado a la nueva versión por Dolores Llanos:

http://pilas-engine.com.ar/#/docs

2 Me gusta

Saludos,
estoy revisando el tutorial, y aprendiendo tanto de python como de pilas.
Ya he revisado muchos ejemplos y realizado algunas tareas.
Realizando el tutorial no puedo avanzar porque solo en el primer ejercicio ya no puedo hacer mucho.
el Codigo que he puesto es

import pilasengine
pilas = pilasengine.iniciar()
#Clase mi Sprite de ejemplo y estudio
class MiSprite(pilas.actores.Actor):
    #Inicia la clase
    def __init__(self, imagen):
        #Importante primero se debe inicializar la clase principal
        pilas.actores.Actor.iniciar(self, imagen)
        # situar el sprite en la posicion deseada
        self.arriba= 90
        self.izquierda=-320
#Inicializa el sprite
sprite = MiSprite(imagen="mario.png")
pilas.fondos.Color(pilas.colores.blanco)
pilas.ejecutar()

y lanza el siguiente error:

Traceback (most recent call last):
  File "/home/alev2477/workspace/PracticandoConPilas/iniciando/Inicio.py", line 10, in <module>
    class MiSprite(pilas.actores.Actor):
TypeError: Error when calling the metaclass bases
    first argument must be callable

No logro comprender porque no funciona. Estoy aprendiendo los objetos con python, vengo de codificar en java y estoy adaptando a este lenguaje.

Buenas, @Alejandro_Villalobos !

Estoy revisando ese tutorial, que veo que se actualizó en julio del 2016.

Lo cierto es que a mi parecer no es la manera más correcta de inicializar un actor en la versión moderna de Pilasengine. :scream:

Prueba esto:

import pilasengine
pilas = pilasengine.iniciar()

#Clase mi Sprite de ejemplo y estudio
class MiSprite(pilasengine.actores.Actor):
#Inicia la clase
	def iniciar(self, imagen):
		# situar el sprite en la posicion deseada
		self.arriba= 90
		self.izquierda=-320

#VINCULAMOS nuestro actor
pilas.actores.vincular(MiSprite)


#Inicializa el sprite
sprite = pilas.actores.MiSprite(imagen="patito.png")
pilas.fondos.Color(pilas.colores.blanco)


pilas.ejecutar() 

Unos pocos comentarios:

No hace falta usar el init en Pilas Engine. Basta con iniciar(self), por tanto no sé por que está puesto así en el tutorial.

Hay que VINCULAR nuestro actor personalizado, pero tampoco veo que se haga en ese tutorial.

Fijate que como imagen uso “patito.png”, ya que si no tienes esa imagen de Mario en tu carpeta “data” de PilasEngine te va a dar error de ruta.

Voy a reportar estos errores a @hugoruscitti para que revise si este tutorial está realmente actualizado. Muchas gracias por tu aporte y disculpa por estos errores. No dudes en consultar sobre cualquier otra duda que te surja. :wink:

Un saludo.

1 me gusta

Hola @Alejandro_Villalobos, por lo que veo @jordinur está en lo cierto, hay algunos detalles para corregir en el tutorial, tiene algunas cosas de la versión nueva y algunas mezclas con el código viejo… por el momento te recomendaría que veas otro tutorial o bien lo tengas solo de referencia; porque los conceptos son los mismos para cualquier versión, pero cambiaron algunos detalles sobre cómo crear un actor, vincularlo y eso…

Abrazo!

1 me gusta

Muchas gracias, por su oportuno apoyo.
Ya he resuelto el tema, y si me di cuenta que el tutorial no esta al dia realmente, pero si me di cuenta que el tutorial propio de la aplicacion esta muy bueno y me debe bastar.
Ya he resuelto muchas de las cosas pendientes.

Yo queria ver ese ejemplo pero el link esta caido ajaj :v si alguien lo tiene

Hola @Kel_Dominguez, te paso el link directo: