Advertisement
VapeL

Pong

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