Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.42 KB | None | 0 0
  1. import turtle
  2. import os
  3. import math
  4. #screensetup
  5. wn = turtle.Screen()
  6. wn.bgcolor("black")
  7. wn.title("space invaders")
  8.  
  9. #drawborder
  10. border_pen = turtle.Turtle()
  11. border_pen.speed(0)
  12. border_pen.color("white")
  13. border_pen.penup()
  14. border_pen.setposition(-300,-300)
  15. border_pen.pensize(3)
  16. for side in range(4):
  17. border_pen.fd(600)
  18. border_pen.lt(90)
  19. border_pen.hideturtle()
  20.  
  21. #create the player
  22. player = turtle.Turtle()
  23. player.color("blue")
  24. player.shape("triangle")
  25. player.penup()
  26. player.speed(0)
  27. player.setposition(0, -250)
  28. player.setheading(90)
  29.  
  30. playerspeed = 15
  31.  
  32. #create the enemy
  33. enemy = turtle.Turtle()
  34. enemy.color("pink")
  35. enemy.shape("circle")
  36. enemy.penup()
  37. enemy.speed(0)
  38. enemy.setposition(-250, 200)
  39.  
  40. enemyspeed = 2
  41.  
  42. #create the bullet
  43. bullet = turtle.Turtle()
  44. bullet.color("yellow")
  45. bullet.shape("triangle")
  46. bullet.penup()
  47. bullet.speed(0)
  48. bullet.setheading(90)
  49. bullet.shapesize(0.5, 0.5)
  50. bullet.hideturtle()
  51.  
  52. bulletspeed = 20
  53.  
  54. #define bullet state
  55. #ready - ready to fire
  56. #fire - bullet is firing
  57. bulletstate = "ready"
  58. #move the player left and right
  59. def move_left():
  60. x = player.xcor()
  61. x -= playerspeed
  62. if x < -280:
  63. x = - 280
  64. player.setx(x
  65.  
  66. def move_right():
  67. x = player.xcor()
  68. x += playerspeed
  69. if x > 280:
  70. x = 280
  71. player.setx(x)
  72.  
  73. #bulletstuff
  74. def fire_bullet():
  75. #declare bulletstate as a global variable
  76. global bulletstate
  77. if bulletstate == "ready":
  78. bulletstate = "fire"
  79. #move the bullet above player
  80. x = player.xcor()
  81. y = player.ycor() + 10
  82. bullet.setposition(x,y)
  83. bullet.showturtle()
  84.  
  85. def isCollision(t1, t2):
  86. distance = math.sqrt(math.pow(t1.xcor()-t2.xcor(),2)+math.pow(t1.ycor()-t2.ycor(),2))
  87. if distance < 15:
  88. return True
  89. else:
  90. return False
  91. #keyboard bindings
  92. turtle.listen()
  93. turtle.onkey(move_left, "Left")
  94. turtle.onkey(move_right, "Right")
  95. turtle.onkey(fire_bullet, "space")
  96.  
  97.  
  98.  
  99.  
  100. #main game loop
  101. while True:
  102. #move the enemy
  103. x = enemy.xcor()
  104. x += enemyspeed
  105. enemy.setx(x)
  106.  
  107. #move the enemy back and down
  108. if enemy.xcor() > 280:
  109. y = enemy.ycor()
  110. y -= 40
  111. enemyspeed *= -1
  112. enemy.sety(y)
  113.  
  114. if enemy.xcor() < -280:
  115. y = enemy.ycor()
  116. y -= 40
  117. enemyspeed *= -1
  118. enemy.sety(y)
  119.  
  120. #move the bullet
  121. if bulletstate == "fire":
  122. y = bullet.ycor()
  123. y += bulletspeed
  124. bullet.sety(y)
  125. #check to see if the bullet has gone to the top
  126. if bullet.ycor() > 275:
  127. bullet.hideturtle()
  128. bulletstate = "ready"
  129.  
  130. #collision checker
  131. if isCollision(bullet, enemy):
  132. #reset the bullet
  133. bullet.hideturtle()
  134. bulletstate = "ready"
  135. bullet.setposition(0,-400)
  136. #enemy reset
  137. enemy.setposition(-200, 250)
  138.  
  139. if isCollision(player, enemy):
  140. player.hideturtle()
  141. enemy.hideturtle()
  142. print ("Game Over")
  143. break
  144.  
  145.  
  146. delay = raw_input("press enter to finish")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement