Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.12 KB | None | 0 0
  1. #Turtle graphics game
  2. import turtle
  3. import random
  4. import math
  5. from playsound import playsound
  6. import pygame
  7.  
  8. #Set up screen
  9. turtle.setup(800,630)
  10. wn = turtle.Screen()
  11. wn.bgcolor("black")
  12. wn.tracer(2)
  13. wn.bgpic("underwater.gif")
  14.  
  15. #Music
  16. pygame.init()
  17. pygame.mixer.music.load('C:/Users/callu/Desktop/Python/Audio/VOLUME_01 A Night Of Dizzy Spells.wav')
  18. pygame.mixer.music.play(loops=-1)
  19.  
  20. #Draw border
  21. mypen1 = turtle.Turtle()
  22. mypen2 = turtle.Turtle()
  23. mypen1.penup()
  24. mypen1.speed(0)
  25. mypen1.setpos(-300, -300)
  26. mypen1.pendown()
  27. mypen1.pensize(5)
  28. for side in range(4):
  29. mypen1.forward(600)
  30. mypen1.left(90)
  31. mypen1.hideturtle()
  32.  
  33. #Create players
  34. player1 = turtle.Turtle()
  35. player1.color("gold")
  36. player1.shape("turtle")
  37. player1.penup()
  38. player1.speed(0)
  39. player1.setpos(random.randint(-300,300), random.randint(-300,300))
  40.  
  41. player2 = turtle.Turtle()
  42. player2.color("limegreen")
  43. player2.shape("turtle")
  44. player2.penup()
  45. player2.speed(0)
  46. player2.setpos(random.randint(-300,300), random.randint(-300,300))
  47.  
  48. #Create score variable
  49. score1 = 0
  50. score2 = 0
  51.  
  52. #Create goals
  53. maxGoals = 10
  54. goals = []
  55.  
  56. for count in range(maxGoals):
  57. goals.append(turtle.Turtle())
  58. goals[count].speed(9)
  59. goals[count].color("red")
  60. goals[count].shape("turtle")
  61. goals[count].penup()
  62. goals[count].setpos(random.randint(-300,300), random.randint(-300,300))
  63.  
  64. #Set speed variable
  65. speed = 1
  66.  
  67. #Define functions
  68. def turnleft1():
  69. player1.left(30)
  70. def turnright1():
  71. player1.right(30)
  72. def turnleft2():
  73. player2.left(30)
  74. def turnright2():
  75. player2.right(30)
  76. def increasespeed():
  77. global speed
  78. speed += 1
  79. def decreasespeed():
  80. global speed
  81. speed -= 1
  82.  
  83. def isCollision(t1, t2):
  84. d = math.sqrt(math.pow(t1.xcor()-t2.xcor(),2) + math.pow(t1.ycor()-t2.ycor(),2))
  85. if d < 20:
  86. return True
  87. else:
  88. return False
  89.  
  90. #Set bindings
  91. turtle.listen()
  92. turtle.onkey(turnleft1, "Left")
  93. turtle.onkey(turnright1, "Right")
  94. turtle.onkey(turnleft2, "a")
  95. turtle.onkey(turnright2, "d")
  96. turtle.onkey(turnleft2, "A")
  97. turtle.onkey(turnright2, "D")
  98. turtle.onkey(increasespeed, "Up")
  99. turtle.onkey(decreasespeed, "Down")
  100. turtle.onkey(increasespeed, "w")
  101. turtle.onkey(decreasespeed, "s")
  102. turtle.onkey(increasespeed, "W")
  103. turtle.onkey(decreasespeed, "S")
  104.  
  105. while True:
  106. player1.forward(speed)
  107. player2.forward(speed)
  108.  
  109. #Player boundary checking
  110. if player1.xcor() > 300 or player1.xcor() < -300:
  111. player1.right(180)
  112. playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
  113. if player1.ycor() > 300 or player1.ycor() < -300:
  114. player1.right(180)
  115. playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
  116. if player2.xcor() > 300 or player2.xcor() < -300:
  117. player2.right(180)
  118. playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
  119. if player2.ycor() > 300 or player2.ycor() < -300:
  120. player2.right(180)
  121. playsound('C:/Users/callu/Desktop/Python/Audio/Hit 5.wav')
  122.  
  123. #Move the goals
  124. for count in range(maxGoals):
  125. goals[count].forward(3)
  126.  
  127. #Goal boundary checking
  128. if goals[count].xcor() > 300 or goals[count].xcor() < -300:
  129. goals[count].right(180)
  130. if goals[count].ycor() > 300 or goals[count].ycor() < -300:
  131. goals[count].right(180)
  132.  
  133. #Collision checking
  134. if isCollision(player1, goals[count]):
  135. goals[count].setpos(random.randint(-290, 290), random.randint(-290, 290))
  136. goals[count].right(random.randint(0,360))
  137. playsound('C:/Users/callu/Desktop/Python/Audio/Powerup 3.wav')
  138. score1 += 1
  139. mypen1.undo()
  140. mypen1.penup()
  141. mypen1.hideturtle()
  142. mypen1.setposition(-385, 280)
  143. scorestring1 = "Score: %s" %score1
  144. mypen1.color("white")
  145. mypen1.write(scorestring1, False, align="left", font=("Arial",14, "normal"))
  146. if isCollision(player2, player1):
  147. player1.setpos(random.randint(-290, 290), random.randint(-290, 290))
  148. player1.right(random.randint(0,360))
  149. playsound('C:/Users/callu/Desktop/Python/Audio/Powerup 2.wav')
  150. score1 -=1
  151. mypen1.undo()
  152. mypen1.penup()
  153. mypen1.hideturtle()
  154. mypen1.setposition(-385, 280)
  155. scorestring1 = "Score: %s" %score1
  156. mypen1.color("white")
  157. mypen1.write(scorestring1, False, align="left", font=("Arial",14, "normal"))
  158. score2 += 1
  159. mypen2.undo()
  160. mypen2.penup()
  161. mypen2.hideturtle()
  162. mypen2.setposition(310, 280)
  163. scorestring2 = "Score: %s" %score2
  164. mypen2.color("white")
  165. mypen2.write(scorestring2, False, align="left", font=("Arial",14, "normal"))
  166. #Game over screen
  167. if score1 > 14:
  168. player1.hideturtle()
  169. player2.hideturtle()
  170. goals[count].hideturtle()
  171. player1.forward(0)
  172. player2.forward(0)
  173. goals[count].forward(0)
  174. mypen1.penup()
  175. mypen1.hideturtle()
  176. mypen1.setposition(-200, 0)
  177. gameoverstring = "GAME OVER"
  178. winstring1 = "Player 1 wins!"
  179. mypen1.color("red")
  180. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  181. mypen1.setposition(-200, 0)
  182. mypen1.color("orange")
  183. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  184. mypen1.setposition(-200, 0)
  185. mypen1.color("yellow")
  186. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  187. mypen1.setposition(-200, 0)
  188. mypen1.color("firebrick")
  189. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  190. mypen1.setposition(-200, -75)
  191. mypen1.color("firebrick")
  192. mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
  193. mypen1.setposition(-200, -75)
  194. mypen1.color("yellow")
  195. mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
  196. mypen1.setposition(-200, -75)
  197. mypen1.color("orange")
  198. mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
  199. mypen1.setposition(-200, -75)
  200. mypen1.color("red")
  201. mypen1.write(winstring1, False, align="left", font=("Arial",50, "normal"))
  202. if score2 > 14:
  203. player1.hideturtle()
  204. player2.hideturtle()
  205. goals[count].hideturtle()
  206. player1.forward(0)
  207. player2.forward(0)
  208. goals[count].forward(0)
  209. mypen1.penup()
  210. mypen1.hideturtle()
  211. mypen1.setposition(-200, 0)
  212. gameoverstring = "GAME OVER"
  213. winstring2 = "Player 2 wins!"
  214. mypen1.color("red")
  215. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  216. mypen1.setposition(-200, 0)
  217. mypen1.color("orange")
  218. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  219. mypen1.setposition(-200, 0)
  220. mypen1.color("yellow")
  221. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  222. mypen1.setposition(-200, 0)
  223. mypen1.color("firebrick")
  224. mypen1.write(gameoverstring, False, align="left", font=("Arial",50, "normal"))
  225. mypen1.setposition(-200, -75)
  226. mypen1.color("firebrick")
  227. mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
  228. mypen1.setposition(-200, -75)
  229. mypen1.color("yellow")
  230. mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
  231. mypen1.setposition(-200, -75)
  232. mypen1.color("orange")
  233. mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
  234. mypen1.setposition(-200, -75)
  235. mypen1.color("red")
  236. mypen1.write(winstring2, False, align="left", font=("Arial",50, "normal"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement