Advertisement
Guest User

large amount of lag on shooting

a guest
Jul 20th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.50 KB | None | 0 0
  1. #space invaders
  2.  
  3. import turtle
  4. import time
  5. import os
  6. import math
  7. import random
  8.  
  9.  
  10.  
  11. #setup screen
  12. wn = turtle.Screen()
  13. wn.bgcolor("black")
  14. wn.title("Space Invaders Turtle Edition")
  15.  
  16.  
  17. #draw border
  18. border_pen = turtle.Turtle()
  19. border_pen.speed(5)
  20. border_pen.color("white")
  21. border_pen.penup()
  22. border_pen.setposition(-300, -300)
  23. border_pen.pendown()
  24. border_pen.pensize(3)
  25. for side in range(4):
  26.     border_pen.fd(600)
  27.     border_pen.lt(90)
  28. border_pen.hideturtle()
  29.  
  30. #Create player
  31. player = turtle.Turtle()
  32. player.color("blue")
  33. player.shape("turtle")
  34. player.penup()
  35. player.speed(0)
  36. player.setposition(0,-260)
  37. player.setheading(90)
  38.  
  39. #create the player's weapon
  40. bullet = turtle.Turtle()
  41. bullet.color("yellow")
  42. bullet.shape("arrow")
  43. bullet.penup()
  44. bullet.speed(1)
  45. bullet.setheading(90)
  46. bullet.shapesize(0.3, 0.3)
  47. bullet.hideturtle()
  48.  
  49. bulletspeed = 20
  50.  
  51. #define bullet state
  52. #ready - ready to fire
  53. #fire - bullet is firing
  54.  
  55. bulletstate = "ready"
  56.  
  57. #player movement
  58. playerspeed = 15
  59.  
  60. def move_left():
  61.     if(player.xcor() >= -270):
  62.         playerX = player.xcor()
  63.         playerX -= playerspeed
  64.         player.setx(playerX)
  65.  
  66. def move_right():
  67.     if(player.xcor() <= 270):
  68.         playerX = player.xcor()
  69.         playerX += playerspeed
  70.         player.setx(playerX)
  71.  
  72.  
  73. def shoot():
  74.     global bulletstate
  75.     #Declare bulletstate as global if it needs to be changed later
  76.     if bulletstate == "ready":
  77.         bulletstate = "fire"
  78.         #Move bullet to just above player
  79.         x = player.xcor()
  80.         y = player.ycor() + 20
  81.         bullet.setposition(x, y )
  82.         bullet.showturtle()
  83.  
  84.  
  85. def isCollision(t1, t2):
  86.     distance = 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.    
  92.  
  93. turtle.listen()
  94.  
  95. turtle.onkey(move_left, "Left")
  96. turtle.onkey(move_right, "Right")
  97. turtle.onkey(shoot, "space")
  98.  
  99.  
  100.  
  101.  
  102.  
  103. enemyspeed = 1
  104.  
  105. #choose number of enemies
  106. number_of_enemies = 5
  107. #create list of enemies
  108. enemies = []
  109.  
  110. #add enimies
  111. for i in range(number_of_enemies):
  112. #create enemies
  113.     enemies.append(turtle.Turtle())
  114.  
  115. for enemy in enemies:
  116.     enemy.color("red")
  117.     enemy.shape("circle")
  118.     enemy.penup()
  119.     enemy.speed(0)
  120.     x = random.randint(-200, 200)
  121.     y = random.randint(100, 250)
  122.     enemy.setposition(x, y)
  123.  
  124.  
  125. #main game loop
  126. while True:
  127.    
  128.  
  129.     #time.sleep(.001)
  130.  
  131.     for enemy in enemies:
  132.         #move the enemy
  133.         x = enemy.xcor()
  134.         x += enemyspeed
  135.         enemy.setx(x)
  136.        
  137.         if enemy.xcor() > 280 or enemy.xcor() < -280:
  138.             enemyspeed *= -1
  139.             for e in enemies:
  140.                 y = e.ycor()
  141.                 y -= 40
  142.                 e.sety(y)
  143.                
  144.  
  145.         if isCollision(bullet, enemy):
  146.             #reset bullet
  147.             bullet.hideturtle()
  148.             bulletstate = "ready"
  149.             x = random.randint(-200, 200)
  150.             y = random.randint(100, 250)
  151.             enemy.setposition(x, y)
  152.  
  153.  
  154.     #move bullet
  155.     if bulletstate == "fire":
  156.         y = bullet.ycor()
  157.         y += bulletspeed
  158.         bullet.sety(y)
  159.  
  160.     #check to see if bullet reached top
  161.     if bullet.ycor() > 280:
  162.         bullet.hideturtle()
  163.         bulletstate = "ready"
  164.  
  165.  
  166.    
  167.     #reset enemy
  168.         enemy.setposition(-200, 250)
  169.    
  170.     if isCollision(player, enemy):
  171.         player.hideturtle()
  172.         enemy.hideturtle()
  173.         print("Game Over")
  174.         exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement