Skip to content

Instantly share code, notes, and snippets.

@horstjens
Created March 21, 2023 17:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save horstjens/9f12f77a1f831805df1b8aacaa72f91c to your computer and use it in GitHub Desktop.
Save horstjens/9f12f77a1f831805df1b8aacaa72f91c to your computer and use it in GitHub Desktop.
turtle race
import turtle
import random
screen = turtle.getscreen()
screen.setup(width=1.0, height=0.9, startx=0, starty=0)
width = 1000
height = 500
screen.setworldcoordinates(0,0,width, height)
class Game:
punkte = 0
leben = 3
gegner = []
turtle.hideturtle()
turtle.speed(0)
turtle.penup()
turtle.goto(width/2, height * 0.95)
turtle.hideturtle()
car = turtle.Turtle()
car.speed(0)
car.shape("turtle")
car.penup()
car.setheading(0) # east
car.color("green","green")
car.hideturtle()
car.goto(width/10, height/2)
car.showturtle()
car.drivespeed = 20
def status():
turtle.pendown()
turtle.clear()
turtle.write(f"Punkte: {Game.punkte} Leben: {Game.leben}", align="center",
font=("Arial", 25))
def gegner():
enemy = turtle.Turtle()
enemy.speed(0)
#enemy.delay(0)
enemy.hideturtle()
enemy.shape("turtle")
enemy.penup()
enemy.goto(width*0.9, random.randint(0, height))
enemy.color("red", "red")
enemy.setheading(180) # west
enemy.showturtle()
Game.gegner.append(enemy)
screen.ontimer(gegner, 5000)
def tick():
textupdate = False
for enemy in Game.gegner:
enemy.forward(random.randint(1,5))
#print("tick")
if enemy.xcor() < 0:
Game.punkte += 1
textupdate = True
enemy.setx(width + 10)
enemy.sety(random.randint(0, height))
if enemy.distance(car) < 100:
Game.leben -= 1
textupdate = True
if textupdate:
status()
screen.ontimer(tick, 100)
def move_up():
car.sety(car.ycor()+1)
def move_down():
car.sety(car.ycor()-1)
status()
gegner()
screen.onkeypress(move_up, "Up")
screen.onkeypress(move_down, "Down")
screen.ontimer(tick, 100)
screen.listen() # wait for key commands
#turtle.exitonclick()
turtle.mainloop()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment