2016-04-14 9 views
1

Gerade auf den Punkt, ist es möglich, eine Taste nach unten in Python Schildkröte zu halten und ein Stück Code ausführen, zum Beispiel:Hold-Taste - Python Schildkröte

, wenn der Platz für 3 Sekunden gehalten wird - Space()

wenn

Hier ist der Code benötigt:

import time 
import sys 
import turtle 

width = 800 
height = 600 

turtle.screensize(width, height) 
turtle.title('Youtube') 
turtle.hideturtle() 
turtle.penup() 

def text(text, posx, posy, size): 
    turtle.pencolor('white') 
    turtle.goto(posx, posy) 
    turtle.write(text, font=("Arial", size, "normal")) 

##ScreenRender 
turtle.bgpic("background.gif") 
turtle.hideturtle 
#Text 
text('Record A Video', -400, 225, 20) 
text('Hold Space...', -345, 200, 15) 

##End 
turtle.done() 
+0

Siehe http://stackoverflow.com/questions/9961563/how-can-i-make-a-sprite-move-when-key-is-helddown. Sie können http://www.pygame.org/docs/ref/key.html#pygame.key.get_pressed verwenden. – charlierproctor

+0

Ich habe klar gesagt, ich brauche 'Turtle' nicht pygame ... –

Antwort

1

Ja, Sie turtle.listen() in Kombination mit einem der turtle.onkey*() Routinen verwenden können.

Hier ist der Code, wenn nötig:

import time 
import turtle 

WIDTH = 800 
HEIGHT = 600 

seconds = 0 

def text(text, posx, posy, size): 
    turtle.pencolor('black') 
    turtle.goto(posx, posy) 
    turtle.write(text, font=("Arial", size, "normal")) 

def press_space(): 
    global seconds 
    seconds = time.time() 
    turtle.onkeypress(None, ' ') 

def release_space(): 
    if time.time() - seconds >= 3.0: 
     turtle.onkeyrelease(None, ' ') 
     text("thank you.", -200, 200, 15) 

# ScreenRender 
turtle.screensize(WIDTH, HEIGHT) 
turtle.hideturtle() 
turtle.penup() 

# Text 
text('Hold Space for 3 seconds...', -400, 200, 15) 

# Event Handlers 
turtle.listen() 
turtle.onkeypress(press_space, ' ') 
turtle.onkeyrelease(release_space, ' ') 

# End 
turtle.done() 

Die Haltezeit nicht einfach sein kann als Schlüssel ihre eigene Wiederholungsfrequenz haben.

Verwandte Themen