Advertisement
Guest User

Space Invaders 4

a guest
Dec 11th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.52 KB | None | 0 0
  1. #Space Invaders
  2. import turtle
  3. import os
  4.  
  5. #Screen
  6. mainscreen = turtle.Screen()
  7. mainscreen.bgcolor("black")
  8. mainscreen.title("Space Invaders")
  9.  
  10. #Border
  11. border_pen = turtle.Turtle()
  12. border_pen.speed(0)
  13. border_pen.color("white")
  14. border_pen.penup()
  15. border_pen.setposition(-300,-300)
  16. border_pen.pendown()
  17. border_pen.pensize(3)
  18.  
  19. for side in range(4):
  20.     border_pen.fd(600)
  21.     border_pen.lt(90)
  22. border_pen.hideturtle()
  23.  
  24. #Create the player turtle
  25. player = turtle.Turtle()
  26. player.color("blue")
  27. player.shape("triangle")
  28. player.penup()
  29. player.speed(0)
  30. player.setposition(0, -250)
  31. player.setheading(90)
  32.  
  33. playerspeed = 15
  34.  
  35. #Create the enemy
  36. enemy = turtle.Turtle()
  37. enemy.color("red")
  38. enemy.shape("circle")
  39. enemy.penup()
  40. enemy.speed(0)
  41. enemy.setposition(-140, 250)
  42.  
  43. enemyspeed = 2
  44.  
  45. #Player's bullet
  46. bullet = turtle.Turtle()
  47. bullet.color("yellow")
  48. bullet.shape("triangle")
  49. bullet.penup()
  50. bullet.speed(0)
  51. bullet.setheading(90)
  52. bullet.shapesize(0.5, 0.5)
  53. bullet.hideturtle()
  54.  
  55. bulletspeed = 20
  56.  
  57. #Define bullet state
  58. #ready - ready to fire
  59. #fire - bullet is firing
  60. bulletstate = "ready"
  61.  
  62. #Player Movement
  63. def move_left():
  64.     x = player.xcor()
  65.     x-= playerspeed
  66.     if x < -280:
  67.          x = -280
  68.     player.setx(x)
  69.  
  70. def move_right():
  71.     x = player.xcor()
  72.     x += playerspeed
  73.     if x > 280:
  74.         x = 280
  75.     player.setx(x)
  76.  
  77. def fire_bullet():
  78.     #Declare bulletsate as a global if it needs changes
  79.     global bulletstate
  80.     if bulletstate == "ready":
  81.         bulletsate = "fire"
  82.         #Move the bullet just above the player
  83.         x = player.xcor()
  84.         y = player.ycor() +10
  85.         bullet.setposition(x, y)
  86.         bullet.showturtle()
  87.    
  88.  
  89. #Keyboard bindings
  90. turtle.listen()
  91. turtle.onkey(move_left, "Left")
  92. turtle.onkey(move_right, "Right")
  93. turtle.onkey(fire_bullet, "space")
  94.  
  95. #Main game loop
  96. while True:
  97.  
  98.     #Move the enemy
  99.     x = enemy.xcor()
  100.     x += enemyspeed
  101.     enemy.setx(x)
  102.  
  103.     #Move the enemy back and down
  104.     if enemy.xcor() > 280:
  105.         y = enemy.ycor()
  106.         y -= 40
  107.         enemyspeed *= -1
  108.         enemy.sety(y)
  109.  
  110.     if enemy.xcor() < -280:
  111.         y = enemy.ycor()
  112.         y-= 40
  113.         enemyspeed *= -1
  114.        
  115.     #Move the bullet
  116.     if bulletstate == "fire":
  117.         y = bullet.ycor()
  118.         y += bulletspeed
  119.         bullet.sety(y)
  120.  
  121.     #Check to see if the bullet has gone to the top
  122.     if bullet.ycor() > 275:
  123.         bullet.hideturtle()
  124.         bulletstate = "ready"
  125.  
  126.    
  127.  
  128. delay = raw_input("Press enter to start")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement