2016-04-22 6 views
1

Ich arbeite an einem Projekt, das eine Gruppe von Scribbler 2s benötigt, um zu Beginn der Wiedergabe einer WAV-Datei zu tanzen und am Ende der Datei zu stoppen.Roboter nicht tanzen, während WAV Song spielt

(Dies ist nicht der vollständige Code, sondern testen Sie mir, wie es zu tun, so kann ich es auf den größeren Code anzuwenden.)

from Myro import * 
from winsound import* 
from time import * 

def playSong(): 
    s=PlaySound('C:\Python34\cantHoldUs.wav',SND_FILENAME) 
    sleep(30) 
    s.PlaySound(None,SND_FILENAME) 

while playSong()==True: 
    motors(-1,1) 

Der Song spielt und Enden, aber der Roboter bewegt sich nicht . Kann mir jemand sagen wie?

Antwort

1

Ich würde empfehlen, um Ihren Code etwas mit einer While-Schleife Umstrukturierung, da es sauberer und leichter zu steuern:

from time import * 

# Play the song 
s=PlaySound('C:\Python34\cantHoldUs.wav',SND_FILENAME) 

# Start the timer so we can identify when to stop 
starttime = time() 

# Use a while loop with a True statement until we decide to break it 
while True: 
    # Make that robot dance! 
    motors(-1,1) 

    # Check the current time 
    stop_time = ((time() - starttime)) 

    # Stop when 30 seconds is hit 
    if stop_time > 30: 
     s.PlaySound(None,SND_FILENAME) 
     break 

    sleep(1) 
+0

Dies funktioniert nicht - das Lied spielt aber die Schmierer nicht bewegt nach wie vor nicht. Ich habe den Fehler erhalten, dass die Zeit nicht existiert. Ich habe es geändert, indem ich "aus der Zeit des Importierens" gestellt habe, aber das hat auch nicht funktioniert. –

+0

@ A.C. Was ist der Fehler? – Adib

+0

Datei "C: \ Benutzer \ Aesia \ Desktop \ Elemente \ Calico-4.0.0-Windows- alle (1) \ Calico \ playmusicTest.py", Zeile 8, in AttributError: Objekt 'builtin_function_or_method' hat kein Attribut 'time' –