Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #space invaders
- import turtle
- import time
- import os
- import math
- import random
- #setup screen
- wn = turtle.Screen()
- wn.bgcolor("black")
- wn.title("Space Invaders Turtle Edition")
- #draw border
- border_pen = turtle.Turtle()
- border_pen.speed(5)
- border_pen.color("white")
- border_pen.penup()
- border_pen.setposition(-300, -300)
- border_pen.pendown()
- border_pen.pensize(3)
- for side in range(4):
- border_pen.fd(600)
- border_pen.lt(90)
- border_pen.hideturtle()
- #Create player
- player = turtle.Turtle()
- player.color("blue")
- player.shape("turtle")
- player.penup()
- player.speed(0)
- player.setposition(0,-260)
- player.setheading(90)
- #create the player's weapon
- bullet = turtle.Turtle()
- bullet.color("yellow")
- bullet.shape("arrow")
- bullet.penup()
- bullet.speed(1)
- bullet.setheading(90)
- bullet.shapesize(0.3, 0.3)
- bullet.hideturtle()
- bulletspeed = 20
- #define bullet state
- #ready - ready to fire
- #fire - bullet is firing
- bulletstate = "ready"
- #player movement
- playerspeed = 15
- def move_left():
- if(player.xcor() >= -270):
- playerX = player.xcor()
- playerX -= playerspeed
- player.setx(playerX)
- def move_right():
- if(player.xcor() <= 270):
- playerX = player.xcor()
- playerX += playerspeed
- player.setx(playerX)
- def shoot():
- global bulletstate
- #Declare bulletstate as global if it needs to be changed later
- if bulletstate == "ready":
- bulletstate = "fire"
- #Move bullet to just above player
- x = player.xcor()
- y = player.ycor() + 20
- bullet.setposition(x, y )
- bullet.showturtle()
- def isCollision(t1, t2):
- distance = math.pow(t1.xcor() - t2.xcor(), 2) + math.pow(t1.ycor() - t2.ycor(), 2)
- if distance <15:
- return True
- else:
- return False
- turtle.listen()
- turtle.onkey(move_left, "Left")
- turtle.onkey(move_right, "Right")
- turtle.onkey(shoot, "space")
- enemyspeed = 1
- #choose number of enemies
- number_of_enemies = 5
- #create list of enemies
- enemies = []
- #add enimies
- for i in range(number_of_enemies):
- #create enemies
- enemies.append(turtle.Turtle())
- for enemy in enemies:
- enemy.color("red")
- enemy.shape("circle")
- enemy.penup()
- enemy.speed(0)
- x = random.randint(-200, 200)
- y = random.randint(100, 250)
- enemy.setposition(x, y)
- #main game loop
- while True:
- #time.sleep(.001)
- for enemy in enemies:
- #move the enemy
- x = enemy.xcor()
- x += enemyspeed
- enemy.setx(x)
- if enemy.xcor() > 280 or enemy.xcor() < -280:
- enemyspeed *= -1
- for e in enemies:
- y = e.ycor()
- y -= 40
- e.sety(y)
- if isCollision(bullet, enemy):
- #reset bullet
- bullet.hideturtle()
- bulletstate = "ready"
- x = random.randint(-200, 200)
- y = random.randint(100, 250)
- enemy.setposition(x, y)
- #move bullet
- if bulletstate == "fire":
- y = bullet.ycor()
- y += bulletspeed
- bullet.sety(y)
- #check to see if bullet reached top
- if bullet.ycor() > 280:
- bullet.hideturtle()
- bulletstate = "ready"
- #reset enemy
- enemy.setposition(-200, 250)
- if isCollision(player, enemy):
- player.hideturtle()
- enemy.hideturtle()
- print("Game Over")
- exit()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement