Pong es uno de los juegos arcade más famosos, que simula el tenis de mesa. Cada jugador controla una paleta en el juego arrastrándola verticalmente por el lado izquierdo o derecho de la pantalla. Los jugadores usan sus paletas para golpear la pelota de un lado a otro.
Turtle es un módulo gráfico incorporado en Python. Utiliza un panel y un bolígrafo para representar ilustraciones.
A continuación se muestran los pasos utilizados:
- Paso 1) Cree dos paletas A y B en el lado izquierdo y derecho de la pantalla.
- Paso 2) Crea una pelota.
- Paso 3) Crea un evento para mover la paleta verticalmente al presionar una determinada tecla.
- Paso 4) Cree la función para actualizar la puntuación después de que cada jugador pierda una colisión.
A continuación se muestra el programa para crear Padel y Pelota:
Python3
# Import required library import turtle # Create screen sc = turtle.Screen() sc.title("Pong game") sc.bgcolor("white") sc.setup(width=1000, height=600) # Left paddle left_pad = turtle.Turtle() left_pad.speed(0) left_pad.shape("square") left_pad.color("black") left_pad.shapesize(stretch_wid=6, stretch_len=2) left_pad.penup() left_pad.goto(-400, 0) # Right paddle right_pad = turtle.Turtle() right_pad.speed(0) right_pad.shape("square") right_pad.color("black") right_pad.shapesize(stretch_wid=6, stretch_len=2) right_pad.penup() right_pad.goto(400, 0) # Ball of circle shape hit_ball = turtle.Turtle() hit_ball.speed(40) hit_ball.shape("circle") hit_ball.color("blue") hit_ball.penup() hit_ball.goto(0, 0) hit_ball.dx = 5 hit_ball.dy = -5
Producción:
A continuación se muestra el programa completo de Python para crear un juego de pong usando la biblioteca de turtle.
Python
# Import required library import turtle # Create screen sc = turtle.Screen() sc.title("Pong game") sc.bgcolor("white") sc.setup(width=1000, height=600) # Left paddle left_pad = turtle.Turtle() left_pad.speed(0) left_pad.shape("square") left_pad.color("black") left_pad.shapesize(stretch_wid=6, stretch_len=2) left_pad.penup() left_pad.goto(-400, 0) # Right paddle right_pad = turtle.Turtle() right_pad.speed(0) right_pad.shape("square") right_pad.color("black") right_pad.shapesize(stretch_wid=6, stretch_len=2) right_pad.penup() right_pad.goto(400, 0) # Ball of circle shape hit_ball = turtle.Turtle() hit_ball.speed(40) hit_ball.shape("circle") hit_ball.color("blue") hit_ball.penup() hit_ball.goto(0, 0) hit_ball.dx = 5 hit_ball.dy = -5 # Initialize the score left_player = 0 right_player = 0 # Displays the score sketch = turtle.Turtle() sketch.speed(0) sketch.color("blue") sketch.penup() sketch.hideturtle() sketch.goto(0, 260) sketch.write("Left_player : 0 Right_player: 0", align="center", font=("Courier", 24, "normal")) # Functions to move paddle vertically def paddleaup(): y = left_pad.ycor() y += 20 left_pad.sety(y) def paddleadown(): y = left_pad.ycor() y -= 20 left_pad.sety(y) def paddlebup(): y = right_pad.ycor() y += 20 right_pad.sety(y) def paddlebdown(): y = right_pad.ycor() y -= 20 right_pad.sety(y) # Keyboard bindings sc.listen() sc.onkeypress(paddleaup, "e") sc.onkeypress(paddleadown, "x") sc.onkeypress(paddlebup, "Up") sc.onkeypress(paddlebdown, "Down") while True: sc.update() hit_ball.setx(hit_ball.xcor()+hit_ball.dx) hit_ball.sety(hit_ball.ycor()+hit_ball.dy) # Checking borders if hit_ball.ycor() > 280: hit_ball.sety(280) hit_ball.dy *= -1 if hit_ball.ycor() < -280: hit_ball.sety(-280) hit_ball.dy *= -1 if hit_ball.xcor() > 500: hit_ball.goto(0, 0) hit_ball.dy *= -1 left_player += 1 sketch.clear() sketch.write("Left_player : {} Right_player: {}".format( left_player, right_player), align="center", font=("Courier", 24, "normal")) if hit_ball.xcor() < -500: hit_ball.goto(0, 0) hit_ball.dy *= -1 right_player += 1 sketch.clear() sketch.write("Left_player : {} Right_player: {}".format( left_player, right_player), align="center", font=("Courier", 24, "normal")) # Paddle ball collision if (hit_ball.xcor() > 360 and hit_ball.xcor() < 370) and (hit_ball.ycor() < right_pad.ycor()+40 and hit_ball.ycor() > right_pad.ycor()-40): hit_ball.setx(360) hit_ball.dx*=-1 if (hit_ball.xcor()<-360 and hit_ball.xcor()>-370) and (hit_ball.ycor()<left_pad.ycor()+40 and hit_ball.ycor()>left_pad.ycor()-40): hit_ball.setx(-360) hit_ball.dx*=-1
Producción:
Publicación traducida automáticamente
Artículo escrito por romy421kumari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA