Advertisement
GreatRaymondo

Python Pong

Dec 3rd, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.70 KB | None | 0 0
  1. #Simple Pong in Python 3
  2. #by @realalescouser
  3.  
  4. import turtle
  5.  
  6.  
  7. wn = turtle.Screen()
  8. wn.title("Pong by @realalescouser")
  9. wn.bgcolor("black")
  10. wn.setup(width=800, height=600)
  11. wn.tracer(0)
  12.  
  13. # Score
  14. score_a = 0
  15. score_b = 0
  16.  
  17. # Paddle A
  18. paddle_a = turtle.Turtle()
  19. paddle_a.speed(0)
  20. paddle_a.shape("square")
  21. paddle_a.color("white")
  22. paddle_a.shapesize(stretch_wid=5, stretch_len=1)
  23. paddle_a.penup()
  24. paddle_a.goto(-350, 0)
  25.  
  26. # Paddle B
  27. paddle_b = turtle.Turtle()
  28. paddle_b.speed(0)
  29. paddle_b.shape("square")
  30. paddle_b.color("white")
  31. paddle_b.shapesize(stretch_wid=5, stretch_len=1)
  32. paddle_b.penup()
  33. paddle_b.goto(+350, 0)
  34.  
  35. # Ball
  36. ball = turtle.Turtle()
  37. ball.speed(0)
  38. ball.shape("square")
  39. ball.color("white")
  40. ball.penup()
  41. ball.goto(0, 0)
  42. ball.dx = 0.5
  43. ball.dy = -0.5
  44.  
  45. # Pen
  46. pen = turtle.Turtle()
  47. pen.speed(0)
  48. pen.color("white")
  49. pen.penup()
  50. pen.hideturtle()
  51. pen.goto(0, 250)
  52. pen.write("Player A: 0 Player B: 0", align="center", font=("Courier", 24, "normal"))
  53.  
  54. # Function
  55. def paddle_a_up():
  56. y = paddle_a.ycor()
  57. y += 20
  58. paddle_a.sety(y)
  59.  
  60. def paddle_a_down():
  61. y = paddle_a.ycor()
  62. y -= 20
  63. paddle_a.sety(y)
  64.  
  65. def paddle_b_up():
  66. y = paddle_b.ycor()
  67. y += 20
  68. paddle_b.sety(y)
  69.  
  70. def paddle_b_down():
  71. y = paddle_b.ycor()
  72. y -= 20
  73. paddle_b.sety(y)
  74.  
  75. # Keyboard binding
  76. wn.listen()
  77. wn.onkeypress(paddle_a_up, "z")
  78. wn.onkeypress(paddle_a_down, "x")
  79. wn.onkeypress(paddle_b_up, "k")
  80. wn.onkeypress(paddle_b_down, "m")
  81.  
  82. #Main game loop
  83. while True:
  84. wn.update()
  85.  
  86. # Move the Ball
  87. ball.setx(ball.xcor() + ball.dx)
  88. ball.sety(ball.ycor() + ball.dy)
  89.  
  90. # Border Checking
  91. if ball.ycor() > 290:
  92. ball.sety(290)
  93. ball.dy *= -1
  94.  
  95. if ball.ycor() < -290:
  96. ball.sety(-290)
  97. ball.dy *= -1
  98.  
  99. if ball.xcor() > 390:
  100. ball.goto(0, 0)
  101. ball.dx *= -1
  102. score_a += 1
  103. pen.clear()
  104. pen.write("Player A: {} Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))
  105.  
  106. if ball.xcor() < -390:
  107. ball.goto(0, 0)
  108. ball.dx *= -1
  109. score_b += 1
  110. pen.clear()
  111. pen.write("Player A: {} Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))
  112.  
  113.  
  114. #Paddle and ball collisions
  115. if ball.xcor() > 340 and ball.xcor() < 350 and (ball.ycor() < paddle_b.ycor() + 40 and ball.ycor() > paddle_b.ycor() -50):
  116. ball.setx(340)
  117. ball.dx *= -1
  118.  
  119. if ball.xcor() < -340 and ball.xcor() > -350 and (ball.ycor() < paddle_a.ycor() + 40 and ball.ycor() > paddle_a.ycor() -50):
  120. ball.setx(-340)
  121. ball.dx *= -1
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141. #
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement