Aprovecha el precio especial.

Antes:$249

Currency
$209

Paga en 4 cuotas sin intereses

Paga en 4 cuotas sin intereses
Suscríbete

Termina en:

14d

10h

35m

49s

1

Como trate de crear un Juego de ping pong en Python y mori en el intento (psd chat GPT 3 trato de ayudarme )

<h1>Python 3 Ping Pong !! para Principiantes</h1>

Bienvenido a este tutorial sobre cómo crear un juego clásico de Ping Pong usando Python 3 y el módulo Turtle. Si eres nuevo en la programación o en la creación de juegos, ¡Worry not! Este tutorial está diseñado para principiantes y cubrirá todo lo que necesitas saber para crear tu propio juego de Pong en Python 3 (o al menos esa era la idea).

Lo que estamos construyendo

Construiremos un juego clásico de Pong, completo con paletas y una pelota. La pelota rebotará en las paredes y las paletas, y el jugador opuesto obtendrá un punto cuando la pelota salga de la pantalla. La pelota seguirá moviéndose hasta que uno de los jugadores alcance un cierto número de puntos.

Empezando

Para empezar, usaremos el módulo Turtle, que es genial para principiantes porque te permite hacer algunos gráficos básicos sin tener que instalar bibliotecas adicionales. La biblioteca Turtle viene incluida con Python, por lo que no necesitas preocuparte por descargar o instalar nada adicional.

Para crear una ventana, usaremos la función turtle.Screen() y la personalizaremos con las funciones title(), bgcolor() y setup(). También usaremos la función tracer() para acelerar el juego.

Luego, crearemos un bucle de juego principal usando un bucle while True que actualiza la pantalla cada vez que se ejecuta el bucle. Este bucle se encargará de asegurarse de que el juego se ejecute sin problemas y que la pelota y las paletas se muevan correctamente.

import turtle

wn = turtle.Screen()
wn.title("Pong game")
wn.bgcolor("black")
wn.setup(width=800,height=600)
wn.tracer(0)

# Main game loop
whileTrue:
    wn.update()

Creando las paletas

Ahora crearemos las paletas para nuestro juego de Pong. Comenzaremos con la paleta izquierda y crearemos un nuevo objeto Turtle con la función turtle.Turtle(). Luego personalizaremos la paleta con las funciones shape(), color() y shapesize(). Finalmente, posicionaremos la paleta con la función goto().

import turtle
import turtle

wn = turtle.Screen()
wn.title("Pong game")
wn.bgcolor("black")
wn.setup(width=800,height=600)
wn.tracer(0)

# Paddle Apaddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5,stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)

# Paddle Bpaddle_b = turtle.Turtle()
paddle_b.speed(0)
paddle_b.shape("square")
paddle_b.color("white")
paddle_b.shapesize(stretch_wid=5,stretch_len=1)
paddle_b.penup()
paddle_b.goto(350, 0)

# Ballball = turtle.Turtle()
ball.speed(0)
ball.shape("square")
ball.color("white")
ball.penup()
ball.goto(0, 0)

# Function
defpaddle_a_up():
	y = paddle_a.ycor()
	y += 20
	paddle_a.sety(y)

defpaddle_a_down():
	y = paddle_a.ycor()
	y -=20
	paddle_a.sety(y)

defpaddle_b_up():
	y = paddle_b.ycor()
	y += 20
	paddle_b.sety(y)

defpaddle_b_down():
	y = paddle_b.ycor()
	y -=20
	paddle_b.sety(y)

# Keyboard binding
wn.listen()
wn.onkeypress(paddle_a_up, "w")
wn.onkeypress(paddle_a_down, "s")
wn.onkeypress(paddle_b_up, "Up")
wn.onkeypress(paddle_b_down, "Down")

# Main game loop
whileTrue:
    wn.update()	

Haremos lo mismo para la paleta derecha, pero la posicionaremos en el lado derecho de la pantalla.

# Right paddle
right_paddle = turtle.Turtle()
right_paddle.speed(0)
right_paddle.shape("square")
right_paddle.color("white")
right_paddle.shapesize(stretch_wid=6,stretch_len=2)
right_paddle.penup()
right_paddle.goto(350, 0)

Mover las paletas

Ahora que tenemos nuestras paletas, necesitamos moverlas hacia arriba y hacia abajo cuando el jugador presiona las teclas de flecha hacia arriba o hacia abajo. Para hacer esto, crearemos dos funciones: una para mover la paleta izquierda hacia arriba y hacia abajo, y otra para mover la paleta derecha hacia arriba y hacia abajo.

# Move the left paddle up
defleft_paddle_up():
    y = left_paddle.ycor()
    y += 20
    left_paddle.sety(y)

# Move the left paddle down
defleft_paddle_down():
    y = left_paddle.ycor()
    y -=20
    left_paddle.sety(y)

# Move the right paddle up
defright_paddle_up():
    y = right_paddle.ycor()
    y += 20
    right_paddle.sety(y)

# Move the right paddle down
defright_paddle_down():
    y = right_paddle.ycor()
    y -=20
    right_paddle.sety(y)

Usaremos la función onkeypress() para vincular estas funciones a las teclas de flecha hacia arriba y hacia abajo. Además, usaremos la función listen() para asegurarnos de que el programa esté “escuchando” las teclas de flecha.

# Keyboardbindingswn.listen()
wn.onkeypress(left_paddle_up, "w")
wn.onkeypress(left_paddle_down, "s")
wn.onkeypress(right_paddle_up, "Up")
wn.onkeypress(right_paddle_down, "Down")

Creando la pelota

Ahora que tenemos nuestras paletas y las teclas de flecha, necesitamos crear la pelota para nuestro juego de Pong. Comenzaremos creando un nuevo objeto Turtle y personalizándolo con las funciones shape(), color() y penup(). Luego estableceremos la dirección x e y de la pelota con las variables dx y dy. Estas variables se encargarán de mover la pelota en la pantalla.

# Ball
ball = turtle.Turtle()
ball.speed(0)
ball.shape("circle")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 2ball.dy = 2

Poniéndolo todo junto

Ahora que tenemos nuestras paletas, pelota y teclas de flecha, podemos unir todo en nuestro bucle de juego. Comenzaremos moviendo la pelota usando una variable ball.dx y ball.dy, que representarán la dirección x e y de la pelota. Luego comprobaremos las colisiones con las paredes superior e inferior y las paletas izquierda y derecha. Finalmente, actualizaremos la puntuación y reiniciaremos la pelota cuando salga de la pantalla.


import turtle
import os

wn = turtle.Screen()
wn.title("Pong")
wn.bgcolor("black")
wn.setup(width=800, height=600)
wn.tracer(0)

# Scorescore_a = 0score_b = 0# Paddle A
paddle_a = turtle.Turtle()
paddle_a.speed(0)
paddle_a.shape("square")
paddle_a.color("white")
paddle_a.shapesize(stretch_wid=5,stretch_len=1)
paddle_a.penup()
paddle_a.goto(-350, 0)

# Paddle B
paddle_b = turtle.Turtle()
paddle_b.speed(0)
paddle_b.shape("square")
paddle_b.color("white")
paddle_b.shapesize(stretch_wid=5,stretch_len=1)
paddle_b.penup()
paddle_b.goto(350, 0)

# Ballball = turtle.Turtle()
ball.speed(0)
ball.shape("square")
ball.color("white")
ball.penup()
ball.goto(0, 0)
ball.dx = 2ball.dy = 2# Pen
pen = turtle.Turtle()
pen.speed(0)
pen.shape("square")
pen.color("white")
pen.penup()
pen.hideturtle()
pen.goto(0, 260)
pen.write("Player A: 0  Player B: 0", align="center", font=("Courier", 24, "normal"))

# Functions
defpaddle_a_up():
    y = paddle_a.ycor()
    y += 20
    paddle_a.sety(y)

defpaddle_a_down():
    y = paddle_a.ycor()
    y -= 20
    paddle_a.sety(y)

defpaddle_b_up():
    y = paddle_b.ycor()
    y += 20
    paddle_b.sety(y)

defpaddle_b_down():
    y = paddle_b.ycor()
    y -= 20
    paddle_b.sety(y)

# Keyboard bindings
wn.listen()
wn.onkeypress(paddle_a_up, "w")
wn.onkeypress(paddle_a_down, "s")
wn.onkeypress(paddle_b_up, "Up")
wn.onkeypress(paddle_b_down, "Down")

# Main game loopwhileTrue:
    wn.update()

    # Move the ballball.setx(ball.xcor() + ball.dx)
ball.sety(ball.ycor() + ball.dy)
# Border checking# Top and bottom
    if ball.ycor() > 290:
        ball.sety(290)
ball.dy *= -1
        os.system("afplay bounce.wav&")

    elif ball.ycor() < -290:
        ball.sety(-290)
ball.dy *= -1
        os.system("afplay bounce.wav&")

    # Left and right
    if ball.xcor() > 350:
        score_a += 1
        pen.clear()
        pen.write("Player A: {}  Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))
        ball.goto(0, 0)
        ball.dx *= -1

    elif ball.xcor() < -350:
        score_b += 1
        pen.clear()
        pen.write("Player A: {}  Player B: {}".format(score_a, score_b), align="center", font=("Courier", 24, "normal"))
        ball.goto(0, 0)
        ball.dx *= -1# Paddle and ball collisions
    if ball.xcor() < -340and ball.ycor() < paddle_a.ycor() + 50and ball.ycor() > paddle_a.ycor() - 50:
        ball.dx *= -1 
 

    elif ball.xcor() > 340and ball.ycor() < paddle_b.ycor() + 50and ball.ycor() > paddle_b.ycor() - 50:
        ball.dx *= -1

Si un jugador alcanza un cierto número de puntos, el juego terminará y se imprimirá un mensaje de “game over” en la pantalla. Luego, el programa se cerrará después de unos segundos.

Ampliando el juego

Una vez que hayas creado tu juego básico de Pong, hay muchas cosas que puedes hacer para mejorarlo y hacerlo más interesante. Aquí hay algunas ideas para ampliar tu juego:

  • Añade efectos de sonido: Puedes agregar efectos de sonido para que el juego sea más realista y emocionante. Por ejemplo, puedes agregar un sonido de rebote cuando la pelota golpea una paleta o una pared.
  • Agrega diferentes niveles: Puedes hacer que el juego sea más desafiante agregando diferentes niveles. Por ejemplo, puedes hacer que la pelota se mueva más rápido en niveles posteriores.
  • Agrega una inteligencia artificial: Puedes agregar una inteligencia artificial al juego para que puedas jugar contra la computadora.
  • Agrega power-ups: Puedes agregar power-ups al juego para hacerlo más interesante. Por ejemplo, puedes agregar un power-up que haga que tu paleta sea más grande o que haga que la pelota se mueva más lentamente.
  • Personaliza el juego: Puedes personalizar el juego agregando diferentes temas o gráficos. Por ejemplo, puedes hacer un tema de Pong de Halloween con paletas y pelotas con temática de Halloween.

Conclusion

En este tutorial, aprendimos cómo crear un juego de Pong usando Python 3 y el módulo Turtle. Cubrimos mucho terreno, incluyendo cómo usar cadenas, listas, bucles for y while, tuplas y cualquier otro tipo de datos de Python que nos ayudará a crear este juego. También aprendimos cómo usar el módulo Turtle para crear una ventana, paletas, una pelota y cómo moverlos usando teclas de flecha. Finalmente, aprendimos cómo comprobar colisiones y actualizar la puntuación y reiniciar la pelota cuando salga de la pantalla.

Esperamos que hayas encontrado útil este tutorial y que te haya inspirado a seguir aprendiendo Python y el desarrollo de juegos. Hay mucho más que puedes hacer con Python y el módulo Turtle, así que sigue explorando y experimentando!

Escribe tu comentario
+ 2