Estimados no logro que el Marciano se mueva con el teclado ¿dónde me estoy equivocando?
import pilasengine
pilas = pilasengine.iniciar()
fondo = pilas.fondos.Espacio()
marciano = pilas.actores.Marciano()
marciano.x = 0
marciano.y = 0
marciano.escala = 2.0
marciano.rotacion = 0
pilas.avisar(“Utiliza el teclado para mover al personaje.”)
class Moverse ConElTeclado(habilidades.Habilidad):
class MiActor(pilasengine.actores.Actor):
marciano.aprender(pilas.habilidades.MoverseConElTeclado, control=mi_control))
teclas = {
pilas.simbolos.a: 'izquierda',
pilas.simbolos.d: 'derecha',
pilas.simbolos.w: 'arriba',
pilas.simbolos.s: 'abajo',
pilas.simbolos.ESPACIO: 'boton',
}
marciano = pilas.actores.Marciano(x = 200)
marciano = pilas.actores.Marciano()
mi_control = pilas.control.Control(teclas)
marciano.aprender(pilas.habilidades.Disparar()
planeta_azul = pilas.actores.Planeta()
planeta_azul.x=0
planeta_azul.y=120
planeta_azul.escala = 2.0
)
pilas.ejecutar()
Muchas gracias
Buenas, @marisacon
Aquí te paso tu código rectificado.
Bśicamente lo he ordenado, ya que estaba todo mezclado, y he creado la class Marciano corectamente.
A veces, cuando algo no funciona puede ser algo tan tonto como que una línea de código esté por delante de otra a la que hace referencia… Por ejemplo, si pongo mi_control = pilas.control.Control(teclas) antes que la definición de las teclas, no me las va a reconocer. Igualmente, si escribo esa linea después de la class Marciano, el actor Marciano no la va a reconocer, o incluso puede que Python dé un error.
De aquí que sea importante tener claro el orden en el cual se escribe el código y qué debe ir antes y qué después.
Quizás deberias tambien repasar en el manual la creación de actores personalizados, para acabar de aclarar algunos conceptos…
Espero que esto te ayude !
Un saludo.
# -*- encoding: utf-8 -*-
import pilasengine
pilas = pilasengine.iniciar()
fondo = pilas.fondos.Espacio()
pilas.avisar("Utiliza el teclado para mover al personaje.")
teclas = {
pilas.simbolos.a: 'izquierda',
pilas.simbolos.d: 'derecha',
pilas.simbolos.w: 'arriba',
pilas.simbolos.s: 'abajo',
pilas.simbolos.ESPACIO: 'boton',
}
mi_control = pilas.control.Control(teclas)
# Creamos un actor personalizado:
class Marciano(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = 'data/alien.png'
self.x = 0
self.y = 0
self.escala = 2.0
self.rotacion = 0
self.aprender('moverseconelteclado', control=mi_control)
self.aprender('disparar')
pilas.actores.vincular(Marciano) # Vinculamos nuestro actor personalizado
marciano = pilas.actores.Marciano() #Inicializamos nuestro actor personalizado
planeta_azul = pilas.actores.Planeta()
planeta_azul.x=0
planeta_azul.y=120
planeta_azul.escala = 2.0
pilas.ejecutar()
Muchas Gracias @jordinur por tu disponibilidad y por tus aclaraciones. Las voy a tener en cuenta!! .
De nada…
siempre es un placer ayudar!
Si teneis más dudas aprovechad ahora, por que en dos dias se me acaban las vacaciones…
Un saludo.