Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Turtle graphics game
- import turtle
- import random
- import math
- from playsound import playsound
- import pygame
- #Set up screen
- turtle.setup(800,630)
- wn = turtle.Screen()
- wn.bgcolor("black")
- wn.tracer(2)
- wn.bgpic("underwater.gif")
- #Music
- pygame.init()
- pygame.mixer.music.load('C:/Users/callu/Desktop/Python/Audio/VOLUME_01 A Night Of Dizzy Spells.wav')
- pygame.mixer.music.play(loops=-1)
- #Draw border
- mypen1 = turtle.Turtle()
- mypen2 = turtle.Turtle()
- mypen1.penup()
- mypen1.speed(0)
- mypen1.setpos(-300, -300)
- mypen1.pendown()
- mypen1.pensize(5)
- for side in range(4):
- mypen1.forward(600)
- mypen1.left(90)
- mypen1.hideturtle()
- #Create players
- player1 = turtle.Turtle()
- player1.color("gold")
- player1.shape("turtle")
- player1.penup()
- player1.speed(0)
- player1.setpos(random.randint(-300,300), random.randint(-300,300))
- player2 = turtle.Turtle()
- player2.color("limegreen")
- player2.shape("turtle")
- player2.penup()
- player2.speed(0)
- player2.setpos(random.randint(-300,300), random.randint(-300,300))
- #Create score variable
- score1 = 0
- score2 = 0
- #Create goals
- maxGoals = 10
- goals = []
- for count in range(maxGoals):
- goals.append(turtle.Turtle())
- goals[count].speed(9)
- goals[count].color("red")
- goals[count].shape("turtle")
- goals[count].penup()
- goals[count].setpos(random.randint(-300,300), random.randint(-300,300))
- #Set speed variable
- speed = 1
- #Define functions
- def turnleft1():
- player1.left(30)
- def turnright1():
- player1.right(30)
- def turnleft2():
- player2.left(30)
- def turnright2():
- player2.right(30)
- def increasespeed():
- global speed
- speed += 1
- def decreasespeed():
- global speed
- speed -= 1
- def isCollision(t1, t2):
- d = math.sqrt(math.pow(t1.xcor()-t2.xcor(),2) + math.pow(t1.ycor()-t2.ycor(),2))
- if d < 20:
- return True
- else:
- return False
- #Set bindings
- turtle.listen()
- turtle.onkey(turnleft1, "Left")
- turtle.onkey(turnright1, "Right")
- turtle.onkey(turnleft2, "a")
- turtle.onkey(turnright2, "d")
- turtle.onkey(turnleft2, "A")
- turtle.onkey(turnright2, "D")
- turtle.onkey(increasespeed, "Up")
- turtle.onkey(decreasespeed, "Down")
- turtle.onkey(increasespeed, "w")
- turtle.onkey(decreasespeed, "s")
- turtle.onkey(increasespeed, "W")
- turtle.onkey(decreasespeed, "S")
- while True:
- player1.forward(speed)
- player2.forward(speed)
- #Player boundary checking
- if player1.xcor() > 300 or player1.xcor() < -300:
- player1.right(180)
- playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
- if player1.ycor() > 300 or player1.ycor() < -300:
- player1.right(180)
- playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
- if player2.xcor() > 300 or player2.xcor() < -300:
- player2.right(180)
- playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
- if player2.ycor() > 300 or player2.ycor() < -300:
- player2.right(180)
- playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
- #Move the goals
- for count in range(maxGoals):
- goals[count].forward(3)
- #Goal boundary checking
- if goals[count].xcor() > 300 or goals[count].xcor() < -300:
- goals[count].right(180)
- if goals[count].ycor() > 300 or goals[count].ycor() < -300:
- goals[count].right(180)
- #Collision checking
- if isCollision(player1, goals[count]):
- goals[count].setpos(random.randint(-290, 290), random.randint(-290, 290))
- goals[count].right(random.randint(0,360))
- playsound('C:/Users/callu/Desktop/Python/Audio/Powerup 3.wav')
- score1 += 1
- mypen1.undo()
- mypen1.penup()
- mypen1.hideturtle()
- mypen1.setposition(-385, 280)
- scorestring1 = "Score: %s" %score1
- mypen1.color("white")
- mypen1.write(scorestring1, False, align="left", font=("Arial",14, "normal"))
- if isCollision(player2, player1):
- player1.setpos(random.randint(-290, 290), random.randint(-290, 290))
- player1.right(random.randint(0,360))
- playsound('C:/Users/callu/Desktop/Python/Audio/Powerup 2.wav')
- score1 -=1
- mypen1.undo()
- mypen1.penup()
- mypen1.hideturtle()
- mypen1.setposition(-385, 280)
- scorestring1 = "Score: %s" %score1
- mypen1.color("white")
- mypen1.write(scorestring1, False, align="left", font=("Arial",14, "normal"))
- score2 += 1
- mypen2.undo()
- mypen2.penup()
- mypen2.hideturtle()
- mypen2.setposition(310, 280)
- scorestring2 = "Score: %s" %score2
- mypen2.color("white")
- mypen2.write(scorestring2, False, align="left", font=("Arial",14, "normal"))
- #Game over screen
- if score1 > 14:
- player1.hideturtle()
- player2.hideturtle()
- goals[count].hideturtle()
- player1.forward(0)
- player2.forward(0)
- goals[count].forward(0)
- mypen1.penup()
- mypen1.hideturtle()
- mypen1.setposition(-200, 0)
- gameoverstring = "GAME OVER"
- winstring1 = "Player 1 wins!"
- mypen1.color("red")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, 0)
- mypen1.color("orange")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, 0)
- mypen1.color("yellow")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, 0)
- mypen1.color("firebrick")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("firebrick")
- mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("yellow")
- mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("orange")
- mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("red")
- mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
- if score2 > 14:
- player1.hideturtle()
- player2.hideturtle()
- goals[count].hideturtle()
- player1.forward(0)
- player2.forward(0)
- goals[count].forward(0)
- mypen1.penup()
- mypen1.hideturtle()
- mypen1.setposition(-200, 0)
- gameoverstring = "GAME OVER"
- winstring2 = "Player 2 wins!"
- mypen1.color("red")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, 0)
- mypen1.color("orange")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, 0)
- mypen1.color("yellow")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, 0)
- mypen1.color("firebrick")
- mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("firebrick")
- mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("yellow")
- mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("orange")
- mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
- mypen1.setposition(-200, -75)
- mypen1.color("red")
- mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement