Advertisement
Guest User

wrong pong

a guest
Apr 2nd, 2020
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.96 KB | None | 0 0
  1. #Pong in Python
  2. import turtle
  3. import winsound
  4. import os
  5. import json
  6.  
  7.  
  8. # sound
  9. relative_dir = os.path.dirname(__file__)
  10. sound_file = os.path.join(relative_dir, 'bounce.wav')
  11. config_file_path = os.path.join(relative_dir, 'config.json')
  12.  
  13. with open(config_file_path) as config_file:
  14. data = json.load(config_file)
  15. bounce_sound = data['bounce_sound']
  16.  
  17. wn = turtle.Screen()
  18. wn.title("Pongchamp")
  19. wn.bgcolor(data["wn.bgcolor"])
  20. wn.setup(width=800, height=600)
  21. wn.tracer(0)
  22.  
  23.  
  24. # score
  25. score_a = 0
  26. score_b = 0
  27.  
  28.  
  29. # Paddle a
  30. paddle_a = turtle.Turtle()
  31. paddle_a.speed(0)
  32. paddle_a.shape("square")
  33. paddle_a.color(data["paddle_a.color"])
  34. paddle_a.shapesize(stretch_wid=5, stretch_len=1)
  35. paddle_a.penup()
  36. paddle_a.goto(-350, 0)
  37.  
  38.  
  39. # Paddle b
  40. paddle_b = turtle.Turtle()
  41. paddle_b.speed(0)
  42. paddle_b.shape("square")
  43. paddle_b.color(data["paddle_b.color"])
  44. paddle_b.shapesize(stretch_wid=5, stretch_len=1)
  45. paddle_b.penup()
  46. paddle_b.goto(350, 0)
  47.  
  48.  
  49. # ball
  50. ball = turtle.Turtle()
  51. ball.speed(0)
  52. ball.shape("square")
  53. ball.color(data["ball.color"])
  54. ball.penup()
  55. ball.goto(0, 0)
  56. ball.dx = 0.1
  57. ball.dy = -0.1
  58.  
  59.  
  60. # pen
  61. pen = turtle.Turtle()
  62. pen.speed(0)
  63. pen.color("white")
  64. pen.penup()
  65. pen.hideturtle()
  66. pen.goto(0, 260)
  67.  
  68.  
  69. # scoreupdate
  70. def scoreUpdate(pen, data):
  71. pen.write("{} {} {} {}".format(
  72. data["player_name_a"], score_a, data["player_name_b"], score_b), align="center", font=("Courier", 24, "normal"))
  73.  
  74.  
  75. scoreUpdate(pen, data)
  76.  
  77.  
  78. # function
  79. def paddle_a_up():
  80. y = paddle_a.ycor()
  81. y += 20
  82. paddle_a.sety(y)
  83.  
  84.  
  85. def paddle_a_down():
  86. y = paddle_a.ycor()
  87. y += -20
  88. paddle_a.sety(y)
  89.  
  90.  
  91. def paddle_b_up():
  92. y = paddle_b.ycor()
  93. y += 20
  94. paddle_b.sety(y)
  95.  
  96.  
  97. def paddle_b_down():
  98. y = paddle_b.ycor()
  99. y += -20
  100. paddle_b.sety(y)
  101.  
  102.  
  103. # def ballcollided(bounce, "(winsound.PlaySound("/bounce.wav", winsound.SND_ASYNC)):
  104. def bounce(winsound):
  105. winsound.PlaySound(sound_file, winsound.SND_ASYNC)
  106.  
  107.  
  108.  
  109. # keybind
  110. wn.listen()
  111. wn.onkeypress(paddle_a_up, data["paddle_a_up"])
  112. wn.onkeypress(paddle_a_down, data["paddle_a_down"])
  113. wn.onkeypress(paddle_b_up, data["paddle_b_up"])
  114. wn.onkeypress(paddle_b_down, data["paddle_b_down"])
  115.  
  116.  
  117. # main game loop
  118. while(score_a < 1 and score_b < 1):
  119. wn.update()
  120.  
  121. # Move the ball
  122. ball.setx(ball.xcor() + ball.dx)
  123. ball.sety(ball.ycor() + ball.dy)
  124.  
  125. # border checking
  126. if ball.ycor() > 290:
  127. ball.sety(290)
  128. ball.dy *= -1
  129. bounce(winsound)
  130.  
  131. if ball.ycor() < -290:
  132. ball.sety(-290)
  133. ball.dy *= -1
  134. bounce(winsound)
  135.  
  136. if ball.xcor() > 390:
  137. ball.goto(0, 0)
  138. ball.dx = .1
  139. ball.dx *= -1
  140. score_a += 1
  141. pen.clear()
  142. scoreUpdate(pen, data)
  143.  
  144. if ball.xcor() < -390:
  145. ball.goto(0, 0)
  146. ball.dx = .1
  147. ball.dx *= 1
  148. score_b += 1
  149. pen.clear()
  150. scoreUpdate(pen, data)
  151.  
  152.  
  153. # paddle and ball collision
  154. if (ball.xcor() > 340 and ball.xcor() < 350) and (ball.ycor() < paddle_b.ycor() + 40 and ball.ycor() > paddle_b.ycor() - 40):
  155. ball.setx(340)
  156. ball.dx *= -1
  157. ball.dx -= .05
  158. bounce(winsound)
  159.  
  160. if (ball.xcor() < -340 and ball.xcor() > -350) and (ball.ycor() < paddle_a.ycor() + 40 and ball.ycor() > paddle_a.ycor() - 40):
  161. ball.setx(-340)
  162. ball.dx *= -1
  163. ball.dx += .05
  164. bounce(winsound)
  165.  
  166. #def winner(data):
  167. # if (score_a > score_b):
  168. # winner = (data["player_name_a"]
  169.  
  170. #winner = (data["player_name_b"]
  171.  
  172.  
  173.  
  174. while(True):
  175. wn.update()
  176. # Pen
  177. pen = turtle.Turtle()
  178. pen.speed(0)
  179. pen.color("white")
  180. pen.penup()
  181. pen.hideturtle()
  182. pen.write("{} {} {} {}".format(
  183. data["player_name_a"], score_a, data["player_name_b"], score_b), align="center", font=("Courier", 24, "normal"))
  184. data["player_name_a"], score_a, data["player_name_b"], score_b), align="center", font=("Courier", 24, "normal"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement