Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.09 KB | None | 0 0
  1. #Space Inavders - Part
  2. #Set up the screen
  3. #Python 2.7
  4. import turtle
  5. import os
  6. import math
  7.  
  8.  
  9. #Set up the screen
  10. wn = turtle.Screen()
  11. wn.bgcolor("black")
  12. wn.title("Space Invaders")
  13.  
  14. #Draw border
  15. border_pen = turtle.Turtle()
  16. border_pen.speed(0)
  17. border_pen.color("White")
  18. border_pen.penup()
  19. border_pen.setposition(-300,-300)
  20. border_pen.pendown()
  21. border_pen.pensize(3)
  22. for side in range(4):
  23.     border_pen.forward(600)
  24.     border_pen.left(90)
  25. border_pen.hideturtle()
  26.  
  27. #Create the player turtle
  28. player = turtle.Turtle()
  29. player.color("blue")
  30. player.shape("triangle")
  31. player.penup()
  32. player.speed(0)
  33. player.setposition(0, -250)
  34. player.setheading(90)
  35.  
  36. playerspeed = 15
  37.  
  38. #Create the enemy
  39. enemy = turtle.Turtle()
  40. enemy.color("red")
  41. enemy.shape("circle")
  42. enemy.penup()
  43. enemy.speed(0)
  44. enemy.setposition(-200, 250)
  45.  
  46. enemyspeed = 2
  47.  
  48. #Create the player's bullet
  49. bullet = turtle.Turtle()
  50. bullet.color("yellow")
  51. bullet.shape("triangle")
  52. bullet.penup()
  53. bullet.speed(0)
  54. bullet.setheading(90)
  55. bullet.shapesize(0.5, 0.5)
  56. bullet.hideturtle()
  57.  
  58. bulletspeed = 20
  59.  
  60. #Define bullet state
  61. #ready - ready to fire
  62. #fire - bullet is firing
  63. bulletstate = "ready"
  64.  
  65. #Move the player left and right
  66. def move_left():
  67.     x = player.xcor()
  68.     x -= playerspeed
  69.     if x < -280:
  70.         x =  280
  71.     player.setx(x)
  72.  
  73. def move_right():
  74.     x = player.xcor()
  75.     x += playerspeed
  76.     if x > 280:
  77.         x = - 280
  78.     player.setx(x)
  79.  
  80. def fire_bullet():
  81.     #Declare bulletstate as a global if it needs changed
  82.     global bulletstate
  83.     if bulletstate == "ready":
  84.         bulletstate = "fire"
  85.         #Move the bullet to just above the player
  86.         x = player.xcor()
  87.         y = player.ycor()
  88.         bullet.setposition(x, y + 10)
  89.         bullet.showturtle()
  90.  
  91. def isCollision(t1, t2):
  92.     distance = math.sqrt(math.pow(t1.xcor()-t2.xcor(),2))+(math.pow(t1.ycor()-t2.ycor(),2))
  93.     if distance < 10:
  94.         return True
  95.     else:
  96.         return False
  97.  
  98.  
  99.  
  100. #Create keyboard bindings
  101. turtle.listen()
  102. turtle.onkey(move_left, "Left")
  103. turtle.onkey(move_right, "Right")
  104. turtle.onkey(fire_bullet, "space")
  105.  
  106. #Main game loop
  107. while True:
  108.  
  109.     #Move the enemy
  110.     x = enemy.xcor()
  111.     x += enemyspeed
  112.     enemy.setx(x)
  113.  
  114.     #Move the enemy back and down
  115.     if enemy.xcor() > 280:
  116.         y = enemy.ycor()
  117.         y -= 40
  118.         enemyspeed *= -1
  119.         enemy.sety(y)
  120.  
  121.  
  122.     if enemy.xcor () < -280:
  123.         y = enemy.ycor()
  124.         y -= 40
  125.         enemyspeed *= -1
  126.         enemy.sety(y)
  127.  
  128.     #Move the bullet
  129.     if bulletstate == "fire":
  130.         y = bullet.ycor()
  131.         y += bulletspeed
  132.         bullet.sety(y)
  133.  
  134.     #Check to see if the bullet has gone to the top
  135.     if bullet.ycor() > 275:
  136.         bullet.hideturtle()
  137.         bulletstate = "ready"
  138.  
  139.     #Check if the enemy and the bullet collide
  140.     if isCollision(bullet, enemy):
  141.         #Reset the bullet
  142.         bullet.hideturtle()
  143.         bulletstate = "ready"
  144.         bullet.setposition(0, -400)
  145.         #Reset the enemy
  146.         enemy.setposition(-200, 250)
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163. delay = turtle.done()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement