hola yo estoy haciendo un juego de laberinto que tiene aumento y seguimiento con cámara de personaje por esta lineas
pilas.escena_actual().camara.x=self.x
pilas.escena_actual().camara.y=self.y
bueno mi problema es que le quiero agregar sonido y use el ejemplo “sonidos con selector habilitar” y cuando agregue sonido a mi juego no podía presionar el botón para que inicie la música y probando me di cuenta de que si borraba las lineas
pilas.escena_actual().camara.x=self.x
pilas.escena_actual().camara.y=self.y
el botón funcionaba pero necesito que las dos juntas funciones alguien me podría dar una ayuda con este error o una forma diferente de hacer el seguimiento de camara o el sonido por que la verdad lla no se que intentar
Hola @Michael_Martinez, parece un bug de pilas… ¿me enviarías el código completo de tu programa?, así lo pruebo para la versión nueva que estamos armando.
bueno aca te paso mi codigo de mi juego estoy bastante masl aum le quiero agregar muchas cosas (menu entre otras) pero solo llegue hasta aca
import pilasengine
pilas = pilasengine.iniciar()
tiempo = 90
contador = pilas.actores.Texto("90")
contador.x = 300
contador.y = 230
#### sonido sin funcionar####
un_sonido = pilas.sonidos.cargar("make_a_move.wav")
def reproducir_sonido():
un_sonido.reproducir()
print un_sonido
b = pilas.interfaz.Boton("Musica")
b.conectar(reproducir_sonido)
b.x = -250
b.y = -200
###Grilla_Prota###
class Mini(pilasengine.actores.Actor):
def iniciar(self):
self.imagen = pilas.imagenes.cargar_animacion("mini.png",4,4)
self.escala = 0.45
self.imagen.definir_animacion('parado', [2], 10)
self.imagen.definir_animacion('caminar', [4,5,6,7], 10)
self.imagen.definir_animacion('norte', [12,13,14,15], 10)
self.imagen.definir_animacion('sur', [0,1,2,3], 10)
self.figura = self.pilas.fisica.Rectangulo(305, -228, 10)
self.figura.escala_de_gravedad = 0
self.figura.sin_rotacion = True
self.hacer_inmediatamente('ComportamientoNormal')
###Movimiento_Figura_fisica###
def actualizar(self):
velocidad = 1
self.x = self.figura.x
self.y = self.figura.y
if self.pilas.control.arriba:
self.figura.velocidad_y = velocidad
if self.pilas.control.abajo:
self.figura.velocidad_y = -velocidad
if self.pilas.control.derecha:
self.figura.velocidad_x = velocidad
self.espejado = True
elif self.pilas.control.izquierda:
self.figura.velocidad_x = -velocidad
self.espejado = False
else:
self.figura.velocidad_x = 0
#####estas dos lineas son el seguimiento con la camara#####
pilas.escena_actual().camara.x=self.x
pilas.escena_actual().camara.y=self.y
######Limite_Mapa########
if self.x > 305:
self.x = 305
if self.x < -305:
self.x = -305
if self.y > 228:
self.y = 228
if self.y < -228:
self.y = -228
self.imagen.avanzar()
####Clases_Movimiento####
class ComportamientoNormal(pilasengine.comportamientos.Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.imagen.cargar_animacion('parado')
####esta linea de aqui es el aumento#######
pilas.camara.escala = 6
def actualizar(self):
self.receptor.figura.velocidad_x = 0
self.receptor.figura.velocidad_y = 0
if pilas.control.derecha or pilas.control.izquierda:
self.receptor.hacer_inmediatamente('ComportamientoCaminar')
if pilas.control.arriba:
self.receptor.hacer_inmediatamente('ComportamientoNorte')
if pilas.control.abajo:
self.receptor.hacer_inmediatamente('ComportamientoSur')
class ComportamientoCaminar(pilasengine.comportamientos.Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.imagen.cargar_animacion('caminar')
def actualizar(self):
if not pilas.control.derecha and not pilas.control.izquierda:
self.receptor.hacer_inmediatamente('ComportamientoNormal')
class ComportamientoNorte(pilasengine.comportamientos.Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.imagen.cargar_animacion('norte')
def actualizar(self):
if not pilas.control.arriba:
self.receptor.hacer_inmediatamente('ComportamientoNormal')
if pilas.control.derecha and pilas.control.izquierda:
self.receptor.hacer_inmediatamente('ComportamientoCaminar')
class ComportamientoSur(pilasengine.comportamientos.Comportamiento):
def iniciar(self, receptor):
self.receptor = receptor
self.receptor.imagen.cargar_animacion('sur')
def actualizar(self):
if not pilas.control.abajo:
self.receptor.hacer_inmediatamente('ComportamientoNormal')
if pilas.control.derecha and pilas.control.izquierda:
self.receptor.hacer_inmediatamente('ComportamientoCaminar')
def descontar_tiempo():
global tiempo
tiempo = tiempo - 1
# Si puede seguir jugando, reducimos el contador.
if tiempo > 0:
contador.texto = str(tiempo) # tiempo es un numero, asi que lo tenemos que convertir a texto con str.
# Si es tiempo de perder.
if tiempo == 0:
mini.eliminar()
contador.eliminar()
texto = pilas.actores.Texto("Game Over")
# le indicamos a pilas que llame a la funcion cada 1 segundo
pilas.tareas.siempre(1, descontar_tiempo)
###Vinculaciones###
pilas.comportamientos.vincular(ComportamientoNormal)
pilas.comportamientos.vincular(ComportamientoCaminar)
pilas.comportamientos.vincular(ComportamientoNorte)
pilas.comportamientos.vincular(ComportamientoSur)
########Final##############
pilas.actores.vincular(Mini)
mini = pilas.actores.Mini()
####esto es para que cuando se termine el mapa no quede el fondo azul####
fondo = pilas.actores.MapaTiled('laberinto_i2.tmx')
fondo.z = 100
pilas.fondos.Cesped()
#####tira un texto al iniciar####
pilas.avisar("resulve el laberinto antes que termine el tiempo")
###########################################################################
pilas.ejecutar()