Advertisement
Guest User

Untitled

a guest
Dec 11th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.56 KB | None | 0 0
  1. import turtle
  2. import Tkinter
  3. import math
  4.  
  5. # performance improvement
  6.  
  7. turtle.setundobuffer(1)
  8. turtle.tracer(1)
  9.  
  10. # Screen Setup
  11.  
  12. screen = turtle.Screen()
  13. screen.bgcolor("Black")
  14. screen.title("Space Warrior")
  15.  
  16. # Game Border
  17.  
  18. border_pen = turtle.Turtle()
  19. border_pen.speed(0)
  20. border_pen.color("white")
  21. border_pen.penup()
  22. border_pen.setposition(-300, -300)
  23. border_pen.pendown()
  24. border_pen.pensize(4)
  25. for side in range(4):
  26.     border_pen.fd(600)
  27.     border_pen.lt(90)
  28. border_pen.hideturtle()
  29.  
  30.  
  31. # Create the player
  32.  
  33. player = turtle.Turtle()
  34.  
  35. player.shape("triangle")
  36. player.color("blue")
  37. player.penup()
  38. player.speed(0)
  39. player.setposition(-0, -250)
  40. player.setheading(90)
  41.  
  42. # Player Weapons
  43.  
  44. bulletspeed_raygun = 30
  45.  
  46. bullet = "tracking"
  47.  
  48. def raygun():
  49.     bullet = turtle.Turtle()
  50.     bullet.hideturtle()
  51.     bullet.color("green")
  52.     bullet.shape("square")
  53.     bullet.penup()
  54.     bullet.speed(0)
  55.     bullet.setheading(90)
  56.     bullet.shapesize(0.1, 0.5)
  57.     z = player.ycor()
  58.     x = player.xcor()
  59.     bullet.setposition(x, z)
  60.     bullet.showturtle()
  61.     while True:
  62.         drct = bullet.ycor()
  63.         drct += bulletspeed_raygun
  64.         bullet.sety(drct)
  65.         if bullet.ycor() > 285:
  66.             break
  67.     if isCollision(t1, t2):
  68.         bullet.hideturtle()
  69.         bullet.setposition(0, -400)
  70.         enemy.setposition(0, -400)
  71.         enemy.hideturtle()
  72.  
  73.  
  74. def isCollision(t1, t2):
  75.     distance = math.sqrt(math.pow(t1.xcor()-t2.xcor(),2)+math.pow(t1.ycor()-t2.ycor(),2))
  76.     if distance < 15:
  77.         return True
  78.     else:
  79.         return False
  80.  
  81. # Basic enemy
  82.  
  83. enemy = turtle.Turtle()
  84. enemy.color("red")
  85. enemy.shape("triangle")
  86. enemy.penup()
  87. enemy.speed(0)
  88. enemy.setheading(270)
  89. enemy.setposition(0, 285)
  90.  
  91. enemyspeed = 2
  92.  
  93. # Eventually Set Up Enemy Movement
  94.  
  95. # Movement Setup
  96.  
  97. playerspeed = 20
  98.  
  99.  
  100. def move_left():
  101.     x = player.xcor()
  102.     x -= playerspeed
  103.     if x < -285:
  104.         x = -285
  105.     player.setx(x)
  106.  
  107.  
  108. def move_right():
  109.     x = player.xcor()
  110.     x += playerspeed
  111.     if x > 285:
  112.         x = 285
  113.     player.setx(x)
  114.  
  115.  
  116. def move_up():
  117.     y = player.ycor()
  118.     y += playerspeed
  119.     if y > 285:
  120.         y = 285
  121.     player.sety(y)
  122.  
  123.  
  124. def move_down():
  125.     y = player.ycor()
  126.     y -= playerspeed
  127.     if y < -285:
  128.         y = -285
  129.     player.sety(y)
  130.  
  131. # Create keyboard binding
  132.  
  133. turtle.listen()
  134. turtle.onkey(move_left, "a")
  135. turtle.onkey(move_right, "d")
  136. turtle.onkey(move_up, "w")
  137. turtle.onkey(move_down, "s")
  138.  
  139. turtle.onkey(move_left, "A")
  140. turtle.onkey(move_right, "D")
  141. turtle.onkey(move_up, "W")
  142. turtle.onkey(move_down, "S")
  143.  
  144. turtle.onkey(move_left, "Left")
  145. turtle.onkey(move_right, "Right")
  146. turtle.onkey(move_up, "Up")
  147. turtle.onkey(move_down, "Down")
  148.  
  149. turtle.onkey(raygun, "k")
  150. turtle.onkey(raygun, "K")
  151. turtle.onkey(raygun, "space")
  152.  
  153. # Main Game Loop
  154. while True:
  155.     # Move the enemy
  156.     y = enemy.ycor()
  157.     y -= enemyspeed
  158.     enemy.sety(y)
  159.     if y < -285:
  160.         y = 285
  161.         enemy.sety(y)
  162.  
  163.  
  164.  
  165.  
  166. Tkinter.mainloop()
  167.  
  168.  
  169.  
  170. #Full Error message
  171. Exception in Tkinter callback
  172. Traceback (most recent call last):
  173.   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 1536, in __call__
  174.     return self.func(*args)
  175.   File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/turtle.py", line 710, in eventfun
  176.     fun()
  177.   File "/Users/Operator/Documents/Projects/Programming/Codes/Games/Pythontut/space_warrior.py", line 67, in raygun
  178.     if isCollision(t1, t2):
  179. NameError: global name 't1' is not defined
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement