Ok. Me estas salvando la vida
Eso si, en el timer sigo atascado. tengo algo así:
class BN_init(threading.Thread):
def __init__(self, tiempo):
threading.Thread.__init__(self)
self.tiempo = tiempo
def run(self):
time.sleep(self.tiempo)
screen.blit(BN.image, BN.rect)
La cosa es meter el timer en un hilo independiente para que el sleep no paralice el resto del programa (o eso creo)
A la clase la llamo con el codigo que te pase antes:
cancion_scr = load_song_scr("SONG1.txt", SONG_DIR)
for linea in cancion_scr:
cancion_scr = load_song_scr("SONG1.txt", SONG_DIR) #esto es para que la cargue en cada ciclo
if linea[0] == 'B':
ThreadBN = BN_init(linea[1:])
ThreadBN.start()
y la funcion load_song_scr simplemente carga el archivo de texto:
def load_song_scr(nombre, dir_cancion):
ruta = os.path.join(dir_cancion, nombre)
try:
file = open(ruta)
except:
print "Error, no se puede cargar la transcripcion: ", ruta
sys.exit(1)
return file
El contenido de SONG1.txt es:
Y cuando ejecuto todo el resultado que da es:
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python27\Lib\threading.py", line 808, in __bootstrap_inner
self.run()
File "PYGAME TEST 1.py", line 127, in run
time.sleep(delay)
TypeError: a float is required
Ya no se que mas puedo hacer. Si sustituyo self.tiempo por un numero funciona.
Si hago un tiempo = 10 tambien
el contenido de self.tiempo es un numero entero (lo he comprovado imprimiendo la variable antes de ejecutar el sleep
Alguna idea? Gracias por adelantado