Hola,estoy contento de que por fin pude entrar al foro!!! queria hacerles una pregunta que tengo con el codigo de un actor.acabo de crear una clase llamado mario.el problema esta en el sonido,porque quiero que cuando salte se reproduzca el sonido,el tema es que lo hace pero el pero el sonido se reproduce cuando vuelve a tocar la plataforma como hago para que el actor reproduzca el sonido de salto una sola cuando comienza el saltor?.les paso el codigo:
import pilas
from pilas.actores import Actor
from pilas.comportamientos import Comportamiento
reproduccion=0
Velocidad=5
pilas.iniciar(titulo="Mario")
class Mario(Actor):
def __init__(self, x=0, y=0):
pilas.actores.Actor.__init__(self, x=x, y=y)
self.imagen = pilas.imagenes.cargar_grilla("papermario.png",3)
self.cuadro = self.imagen
self.cuadro =0
self.arriba = 90
self.izquierda = -320
self.definir_cuadro(0)
self.hacer(Esperando())
def definir_cuadro(self, indice):
self.imagen.definir_cuadro(indice)
class Esperando(Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.definir_cuadro(0)
def actualizar(self):
if pilas.escena_actual().control.izquierda:
self.receptor.hacer(Caminando())
elif pilas.escena_actual().control.derecha:
self.receptor.hacer(Caminando())
if pilas.escena_actual().control.arriba:
self.receptor.hacer(Saltando())
class Caminando(Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.cuadros = [0,0,0,0,0,1,1,1,1,1]
self.paso = 0
def actualizar(self):
self.avanzar_animacion()
if pilas.escena_actual().control.izquierda:
self.receptor.x -= Velocidad
self.receptor.espejado = True
elif pilas.escena_actual().control.derecha:
self.receptor.x += Velocidad
self.receptor.espejado = False
else:
self.receptor.hacer(Esperando())
if pilas.escena_actual().control.arriba:
self.receptor.hacer(Saltando())
def avanzar_animacion(self):
self.paso += 1
if self.paso >= len(self.cuadros):
self.paso = 0
self.receptor.definir_cuadro(self.cuadros[self.paso])
class Saltando(Comportamiento):
"""Representa al actor saltando con animación."""
def iniciar(self, receptor):
self.sound= pilas.sonidos.cargar('saltar.wav')
self.dy = 10
self.receptor = receptor
self.receptor.definir_cuadro(2)
self.origen = self.receptor.y
def actualizar(self):
self.receptor.y += self.dy
self.dy -= 0.2
if self.receptor.y < self.origen :
self.sound.reproducir()
self.receptor.y = self.origen
self.receptor.hacer(Esperando())
if pilas.escena_actual().control.izquierda:
self.receptor.x -= Velocidad
elif pilas.escena_actual().control.derecha:
self.receptor.x += Velocidad