[Python] Python Turtle Speed

Discussão em 'Python' iniciado por Stack, Agosto 23, 2025.

  1. Stack

    Stack Membro Participativo

    My friend and I are working on a Python Game using turtles. Our issue is in the section where it defines the turtles. We are trying to speed each turtle up, but when we do, the default speed runs. Why is this issue occurring?

    import turtle


    turtle.setup(1000,1000)
    wn=turtle.Screen()
    wn.title("Snake Game!")

    #defines first turtle

    t1=turtle.Turtle()
    t1.pensize(2)
    t1.speed(3)
    t1.penup()
    t1.goto(0,100)
    t1.color("blue", "blue")
    t1.pendown()

    #defines second turtle

    t2=turtle.Turtle()
    t2.pensize(2)
    t2.speed(3)
    t2.penup()
    t2.goto(0,-100)
    t2.color("red", "red")
    t2.pendown()

    #defines outline

    ol=turtle.Turtle()
    ol.pensize(2)
    ol.speed(7)
    ol.penup()
    ol.goto(450,0)
    ol.color("black", "black")
    ol.pendown()

    ol.left(90)
    ol.forward(300)
    ol.left(90)
    ol.forward(900)
    ol.left(90)
    ol.forward(600)
    ol.left(90)
    ol.forward(900)
    ol.left(90)
    ol.forward(300)
    ol.hideturtle()

    #defines score

    score1=int(2)
    score2=int(2)

    def motion():
    global move, score1, score2
    move = True
    path1 = []
    path2 = []

    #prints score


    print("Player 1's score is", str(score1)+"!")
    print("Player 2's score is", str(score2)+"!")

    #defines motion

    while move == True:
    global pos1x, pos2x

    t1.forward(1)
    t2.forward(1)

    pos1x = int(t1.xcor())
    pos1y = int(t1.ycor())
    t1xy = (pos1x, pos1y)

    pos2x=int(t2.xcor())
    pos2y=int(t2.ycor())
    t2xy=(pos2x,pos2y)


    path1.append(t1xy)
    path2.append(t2xy)

    #calculates score1

    if t1xy in path2:
    score1=int(score1-1)
    print("")
    print("Player 1's score is", str(score1)+"!")
    print("Player 2's score is", str(score2)+"!")
    t1.clear()
    path1 = []
    t2.clear()
    path2 = []
    t1.penup()
    t1.goto(0,100)
    t1.pendown()
    t2.penup()
    t2.goto(0,-100)
    t2.pendown()
    move = False



    if score1==0:
    print("Player 2 wins!")
    exit()
    else:
    move==True



    #calculates score2


    if t2xy in path1:
    score2=int(score2-1)
    print("")
    print("Player 1's score is", str(score1)+"!")
    print("Player 2's score is", str(score2)+"!")
    t2.clear()
    path2 = []
    t1.clear()
    path1 = []
    t2.penup()
    t2.goto(0,-100)
    t2.pendown()
    t1.penup()
    t1.goto(0,100)
    t1.pendown()
    move = False

    if score2==0:
    print("Player 1 wins!")
    exit()
    else:
    move==True


    #borders

    if pos1x > 450:
    t1.left(135)

    if pos2x > 450:
    t2.left(135)


    if pos1x < -450:
    t1.left(135)

    if pos2x < -450:
    t2.left(135)


    if pos1y > 300:
    t1.left(135)

    if pos2y > 300:
    t2.left(135)

    if pos1y < -300:
    t1.left(135)

    if pos2y < -300:
    t2.left(135)

    #defines controls

    def left():
    t1.speed(500)
    t1.left(45)
    t1.speed(3)

    def right():
    t1.speed(500)
    t1.right(45)
    t1.speed(3)

    def backwards():
    t1.left(180)

    def stop():
    global move
    move = False
    t1.forward(0)
    t2.forward(0)


    def left2():
    t2.speed(500)
    t2.left(45)
    t2.speed(3)

    def right2():
    t2.speed(500)
    t2.right(45)
    t2.speed(3)

    def backwards2():
    t2.left(180)

    def motion2():

    move = True
    path1 = []
    path2 = []


    #onkeys

    wn.onkey(left2, "Left")
    wn.onkey(right2, "Right")
    wn.onkey(backwards2, "Down")

    wn.onkey(left, "a")
    wn.onkey(right, "d")
    wn.onkey(backwards, "s")

    wn.onkey(motion, "t")
    wn.onkey(stop, "y")
    wn.onkey(motion2, "p")



    wn.listen()
    wn.mainloop()

    Continue reading...

Compartilhe esta Página