Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import turtle
- import Tkinter
- import math
- # performance improvement
- turtle.setundobuffer(1)
- turtle.tracer(1)
- # Screen Setup
- screen = turtle.Screen()
- screen.bgcolor("Black")
- screen.title("Space Warrior")
- # Game Border
- border_pen = turtle.Turtle()
- border_pen.speed(0)
- border_pen.color("white")
- border_pen.penup()
- border_pen.setposition(-300, -300)
- border_pen.pendown()
- border_pen.pensize(4)
- for side in range(4):
- border_pen.fd(600)
- border_pen.lt(90)
- border_pen.hideturtle()
- # Create the player
- player = turtle.Turtle()
- player.shape("triangle")
- player.color("blue")
- player.penup()
- player.speed(0)
- player.setposition(-0, -250)
- player.setheading(90)
- # Player Weapons
- bulletspeed_raygun = 30
- bullet = "tracking"
- def raygun():
- bullet = turtle.Turtle()
- bullet.hideturtle()
- bullet.color("green")
- bullet.shape("square")
- bullet.penup()
- bullet.speed(0)
- bullet.setheading(90)
- bullet.shapesize(0.1, 0.5)
- z = player.ycor()
- x = player.xcor()
- bullet.setposition(x, z)
- bullet.showturtle()
- while True:
- drct = bullet.ycor()
- drct += bulletspeed_raygun
- bullet.sety(drct)
- if bullet.ycor() > 285:
- break
- if isCollision(t1, t2):
- bullet.hideturtle()
- bullet.setposition(0, -400)
- enemy.setposition(0, -400)
- enemy.hideturtle()
- def isCollision(t1, t2):
- distance = math.sqrt(math.pow(t1.xcor()-t2.xcor(),2)+math.pow(t1.ycor()-t2.ycor(),2))
- if distance < 15:
- return True
- else:
- return False
- # Basic enemy
- enemy = turtle.Turtle()
- enemy.color("red")
- enemy.shape("triangle")
- enemy.penup()
- enemy.speed(0)
- enemy.setheading(270)
- enemy.setposition(0, 285)
- enemyspeed = 2
- # Eventually Set Up Enemy Movement
- # Movement Setup
- playerspeed = 20
- def move_left():
- x = player.xcor()
- x -= playerspeed
- if x < -285:
- x = -285
- player.setx(x)
- def move_right():
- x = player.xcor()
- x += playerspeed
- if x > 285:
- x = 285
- player.setx(x)
- def move_up():
- y = player.ycor()
- y += playerspeed
- if y > 285:
- y = 285
- player.sety(y)
- def move_down():
- y = player.ycor()
- y -= playerspeed
- if y < -285:
- y = -285
- player.sety(y)
- # Create keyboard binding
- turtle.listen()
- turtle.onkey(move_left, "a")
- turtle.onkey(move_right, "d")
- turtle.onkey(move_up, "w")
- turtle.onkey(move_down, "s")
- turtle.onkey(move_left, "A")
- turtle.onkey(move_right, "D")
- turtle.onkey(move_up, "W")
- turtle.onkey(move_down, "S")
- turtle.onkey(move_left, "Left")
- turtle.onkey(move_right, "Right")
- turtle.onkey(move_up, "Up")
- turtle.onkey(move_down, "Down")
- turtle.onkey(raygun, "k")
- turtle.onkey(raygun, "K")
- turtle.onkey(raygun, "space")
- # Main Game Loop
- while True:
- # Move the enemy
- y = enemy.ycor()
- y -= enemyspeed
- enemy.sety(y)
- if y < -285:
- y = 285
- enemy.sety(y)
- Tkinter.mainloop()
- #Full Error message
- Exception in Tkinter callback
- Traceback (most recent call last):
- File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1536, in __call__
- return self.func(*args)
- File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/turtle.py", line 710, in eventfun
- fun()
- File "/Users/Operator/Documents/Projects/Programming/Codes/Games/Pythontut/space_warrior.py", line 67, in raygun
- if isCollision(t1, t2):
- NameError: global name 't1' is not defined
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement