Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import turtle
- import os
- import time
- #set up the screen
- wn = turtle.Screen()
- wn.bgcolor("black") #background colour
- wn.title("PvP 1.0") #title on the screen
- #Draw Border
- border_pen = turtle.Turtle()
- border_pen.speed(0)
- border_pen.color("white")
- border_pen.penup()
- border_pen.setposition(-300,-300)
- border_pen.pensize(3)
- border_pen.pendown()
- for side in range(4):
- border_pen.fd(600)
- border_pen.lt(90)
- border_pen.hideturtle()
- #Variables
- winner = '0'
- B1D = '0'
- #player1
- player1 = turtle.Turtle()
- player1.color("blue")
- player1.shape("triangle")
- player1.penup()
- player1.speed(0)
- player1.setposition(-280, -280)
- player1.setheading(90)
- player1speed = 15
- #player2
- player2 = turtle.Turtle()
- player2.color("purple")
- player2.shape("square")
- player2.penup()
- player2.speed(0)
- player2.setposition(280, -280)
- player2.setheading(0)
- #create enemy
- enemy = turtle.Turtle()
- enemy.color("red")
- enemy.shape("circle")
- enemy.penup()
- enemy.speed(0)
- enemy.setposition(-200, 250)
- enemy.hideturtle()
- #bullet for P1
- bullet1 = turtle.Turtle()
- bullet1.color("red")
- bullet1.shape("square")
- bullet1.penup()
- bullet1.speed(0)
- bullet1.shapesize(0.5, 0.5)
- bullet1.setheading(0)
- bullet1.hideturtle()
- bulletspeed1 = 30
- bulletstate1 = "ready"
- #score system!
- scoreP1 = 100
- scoreP1_pen = turtle.Turtle()
- scoreP1_pen.speed(0)
- scoreP1_pen.color("white")
- scoreP1_pen.penup()
- scoreP1_pen.setposition(-290, 300)
- scorestring = "P1 HP: %s" %scoreP1
- scoreP1_pen.write(scorestring, False, align="left", font=("Arail", 18, "normal"))
- scoreP1_pen.hideturtle()
- scoreP2 = 100
- scoreP2_pen = turtle.Turtle()
- scoreP2_pen.speed(0)
- scoreP2_pen.color("white")
- scoreP2_pen.penup()
- scoreP2_pen.setposition(160, 300)
- scorestring = "P2 HP: %s" %scoreP2
- scoreP2_pen.write(scorestring, False, align="left", font=("Arail", 18, "normal"))
- scoreP2_pen.hideturtle()
- #player1 movement
- def upP1():
- player1.sety(player1.ycor()+20)
- player1.setheading(90)
- def downP1():
- player1.sety(player1.ycor()-20)
- player1.setheading(30)
- def leftP1():
- player1.setx(player1.xcor()-20)
- player1.setheading(180)
- def rightP1():
- player1.setx(player1.xcor()+20)
- player1.setheading(0)
- #player2 movement
- def upP2():
- player2.sety(player2.ycor()+20)
- player2.setheading(90)
- def downP2():
- player2.sety(player2.ycor()-20)
- player2.setheading(30)
- def leftP2():
- player2.setx(player2.xcor()-20)
- player2.setheading(180)
- def rightP2():
- player2.setx(player2.xcor()+20)
- player2.setheading(0)
- def firebullet1():
- global bulletstate1
- global B1D
- if bulletstate1 == 'ready':
- bulletstate1 = 'fire'
- if player1.heading() == 90:
- bullet1.setheading(90)
- XP1 = player1.xcor()
- YP1 = player1.ycor() + 10
- bullet1.setposition(XP1, YP1)
- bullet1.showturtle()
- B1D = 'up'
- if player1.heading() == 30:
- bullet1.setheading(30)
- XP1 = player1.xcor()
- YP1 = player1.ycor() - 10
- bullet1.setposition(XP1, YP1)
- bullet1.showturtle()
- B1D = 'down'
- if player1.heading() == 180:
- bullet1.setheading(180)
- XP1 = player1.xcor() - 10
- YP1 = player1.ycor()
- bullet1.setposition(XP1, YP1)
- bullet1.showturtle()
- B1D = 'left'
- if player1.heading() == 0:
- bullet1.setheading(0)
- XP1 = player1.xcor() + 10
- YP1 = player1.ycor()
- bullet1.setposition(XP1, YP1)
- bullet1.showturtle()
- B1D = 'right'
- def P1heading():
- global p1heading
- p1heading = player1.heading
- if p1heading == 90:
- print("WIP")
- #if collided
- def collisionCheck_P1_P2():
- global crashed
- crashed = False
- player1X = player1.xcor()
- player1Y = player1.ycor()
- player2X = player2.xcor()
- player2Y = player2.ycor()
- player1Pos = (int(player1X), int(player1Y))
- player2Pos = (int(player2X), int(player2Y))
- if player1Pos == player2Pos:
- crashed = True
- return crashed
- def collisionCheck_B1_P2():
- global crashed
- crashed = False
- player2X = player2.xcor()
- player2Y = player2.ycor()
- bullet1X = bullet1.xcor()
- bullet1Y = bullet1.yxor()
- bullet1Pos = (int)bullet1X), (int)bullet1Y)
- player2Pos = (int)player2X), (int)player2Y)
- if bullet1Pos == player2Pos:
- crashed = 'B1P2'
- return crashed
- turtle.listen()
- #P1
- turtle.onkey(leftP1, "Left")
- turtle.onkey(rightP1, "Right")
- turtle.onkey(upP1, "Up")
- turtle.onkey(downP1, "Down")
- turtle.onkey(firebullet1, "e")
- #P2
- #turtle.onkey(firebullet2, "space")
- turtle.onkey(leftP2, "a")
- turtle.onkey(rightP2, "d")
- turtle.onkey(upP2, "w")
- turtle.onkey(downP2, "s")
- #main game loop
- while True:
- #Keep system going
- enemy.setposition(0, 0)
- collisionCheck_P1_P2()
- if crashed == True:
- #P1
- scoreP1 -= 25
- scorestring = "P1 HP: %s" %scoreP1
- scoreP1_pen.clear() #UPDATE SCORE
- scoreP1_pen.write(scorestring, False, align="left", font=("Arail", 18, "normal"))
- #P2
- scoreP2 -= 25
- scorestring = "P1 HP: %s" %scoreP1
- scoreP2_pen.clear() #UPDATE SCORE
- scoreP2_pen.write(scorestring, False, align="left", font=("Arail", 18, "normal"))
- print("connected")
- player1.setposition(-280, -280)
- player2.setposition(280, -280)
- else:
- print("not connected!")
- collisionCheck_B1_P2()
- if crashed == 'B2P2':
- scoreP1 -= 10
- scorestring = "P1 HP: %s" %scoreP1
- scoreP1_pen.clear() #UPDATE SCORE
- scoreP1_pen.write(scorestring, False, align="left", font=("Arail", 18, "normal"))
- if scoreP1 == 0 or scoreP2 == 0:
- print("Game Over!")
- if scoreP1 == 0:
- winner = 'Player 2'
- print("The winner is " + winner + "!")
- break
- turtle.done()
- else:
- winner = 'Player 1'
- print("The winner is " + winner + "!")
- break
- turtle.done()
- if bulletstate1 == 'fire':
- if B1D == 'up':
- YP1 = bullet1.ycor()
- YP1 += bulletspeed1
- bullet1.sety(YP1)
- if B1D == 'down':
- YP1 = bullet1.ycor()
- YP1 -= bulletspeed1
- bullet1.sety(YP1)
- if B1D == 'left':
- XP1 = bullet1.xcor()
- XP1 -= bulletspeed1
- bullet1.setx(XP1)
- if B1D == 'right':
- XP1 = bullet1.xcor()
- XP1 += bulletspeed1
- bullet1.setx(XP1)
- if bullet1.ycor() > 275:
- bullet1.hideturtle()
- bulletstate1 = 'ready'
- if bullet1.ycor() < -275:
- bullet1.hideturtle()
- bulletstate1 = 'ready'
- if bullet1.xcor() > 275:
- bullet1.hideturtle()
- bulletstate1 = 'ready'
- if bullet1.xcor() < -275:
- bullet1.hideturtle()
- bulletstate1 = 'ready'
- \
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement