Hola, antes que nada perdon si no deberia de postear esto…
Tengo un problema de nacimiento con el metodo init() y con las clases, todavia no logro comprender bien para que se usa el init. Por lo que entendi se usa init() luego de la clase para que se llame a la funcion automaticamente.
Pero tengo un problema con un codigo que escribi gran parte yo, y otra parte lo copie de no recuerdo que pagina de aca en pilas.
Necesito comprender esto para entender mas todo lo que es con respecto a clases:
import pilas
pilas.iniciar(ancho=900, alto=600)
class MiActor(pilas.actores.Actor):
def __init__(self, imagen, x=0, y=0, v=0):
pilas.actores.Actor.__init__(self, imagen)
self.x = x
self.y = y
self.escala=0.75
self.rectangulo = pilas.fisica.Rectangulo(x=self.x, y=self.y,
ancho=self.ancho, alto=self.alto,
restitucion=-10, friccion=0)
self.rectangulo.escala=0.75
self.rectangulo.definir_velocidad_lineal(v, 0)
self.imitar(self.rectangulo)
def actualizar(self):
if pilas.escena_actual().control.izquierda:
self.rectangulo.x -=10
if pilas.escena_actual().control.derecha:
self.rectangulo.x+= 10
nave = MiActor("Gekka beat/frutas.png", x=-260)
pilas.ejecutar()
Básicamente lo que hace el código es crear una navecita en X= -260 y Y= 0 donde le puse un rectangulo que imite a la imagen. La nave cae hasta el suelo y la puedo mover con el teclado.
Ahora, lo que no logro comprender es esta parte del codigo que fue copiada:
class MiActor(pilas.actores.Actor):
def __init__(self, imagen, x=0, y=0, v=0):
pilas.actores.Actor.__init__(self, imagen)
Por que a la clase MiActor tiene ese parametro?
Cual es la funcion que cumple lo que esta escrito abajo del def, osea pilas.actores.Actor__init__(self,imagen)?
Basicamente esa es mi duda ya que cree de nuevo otro codigo y me surge un problema por no poner esas 3 lineas de arriba que no entiendo que hacen realmente.
Este es el otro codigo que cree:
import pilas
class Nave():
def __init__(self,imagen, x=0, y=0):
self.imagen= pilas.actores.Actor(imagen)
def actualizar(self):
if pilas.escena_actual().control.izquierda:
self.imagen.x -= 10
if pilas.escena_actual().control.derecha:
self.imagen.x += 10
def escala(self):
self.imagen.escala= 0.5
def main():
pilas.iniciar(900,600)
nave= Nave("cosas/frutas.png")
nave.escala()
nave.actualizar()
#nave2= Nave("cosas/nave2.png")
pilas.fondos.Color(pilas.colores.negro)
pilas.ejecutar()
main()
En este otro codigo la funcion init_() cumple su objetivo, la funcion escala() cumple con su objetivo pero, el problema que tengo con este otro codigo es que no logro hacer que la funcion actualizar() funcione. No entiendo por que no se mueve la nave, probe un monton de cosas. La unica forma que logre hacer mover la nave es copy pasteando las 3 lineas de codigo que puse arriba y cambiando algunas cosas.
Pero creo que si no entendi esas 3 lineas que copy pastie, no sirve que lo haga de esa forma por que programar sin entender que estoy haciendo es ridiculo…
Gracias al que me ayude, y perdon si no se comprendio del todo lo que trate de explicar
edit: Aprobecho para preguntar una cosa mas:
Agregue cualquier musica para probar como funcionaba:
denpa=pilas.musica.cargar(‘cosas/denpa.ogg’)
denpa.reproducir()
Primero trate de agregarlo en mp3 y no reproducia nada, pilas no es compatible con .mp3?
Y segundo, cuando converti la musica a .ogg al escucharla en un reproductor comun se escucha bien, osea normal.
Pero cuando ejecute el programa en pilas, se escucha la cancion pero como mas lenta, es como si estuviera reproducida a una velocidad menor que 1.0, la voz de ser femenina es como mas de hombre… es raro. Es normal eso ?