Advertisement
Guest User

Untitled

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