Curso de pygame 2020: Pong

แชร์
ฝัง
  • เผยแพร่เมื่อ 11 ม.ค. 2025

ความคิดเห็น • 82

  • @joseangelcastillamunoz7798
    @joseangelcastillamunoz7798 ปีที่แล้ว +1

    Ya 3 años de estos tutoriales, son lo mejor que he visto. Muchas gracias por el empeño de enseñar tan bien!!!

  • @sanssongsgamer6804
    @sanssongsgamer6804 4 ปีที่แล้ว +8

    yo lo hice el programa sin mirar todo se me quedo en el crebro por que explicas bien me ha ayudado muchisimo a programar muchas gracias

  • @KmeleoNCL
    @KmeleoNCL 3 ปีที่แล้ว +2

    Gracias, que sencillo se hace aprender a programar en pygame con tus tutoriales!

  • @sanssongsgamer6804
    @sanssongsgamer6804 4 ปีที่แล้ว +2

    yo lo hice el programa sin mirar todo se me quedo en el cerebro por que explicas bien me ha ayudado muchisimo a programar muchas gracias

  • @OrlandoLopez-d8k
    @OrlandoLopez-d8k ปีที่แล้ว

    oye muchas gracias nunca pense que las colisiones se pudieran manejar de una forma tan sencilla hare los arreglos que faltan para el juego

  • @Bang.Bang.
    @Bang.Bang. 2 ปีที่แล้ว

    ¡Muchas gracias! Me ayudo mucho la forma en la que explicas. Excelente video. Te entendí mejor a ti que a mi profesor 😅.

  • @camilogomez7924
    @camilogomez7924 4 ปีที่แล้ว +7

    Para poner los límites superior e inferior deben poner el siguiente código *despúes* de
    if (player1_y_coor) < 5 or (player1_y_coor+player_height) > 600-5:
    player1_y_speed = 0
    if (player2_y_coor) < 5 or (player2_y_coor+player_height) > 600-5:
    player2_y_speed = 0

    • @ANDREY34H
      @ANDREY34H 3 ปีที่แล้ว

      hay un problema con ese código, si sigues presionando sigue saliendo de la pantalla, en mi caso es mejor el código asi sabiendo que las dimensiones de pantalla son (800x500):
      if player1_y_coor > 415:
      player1_y_coor = 415
      if player1_y_coor < 0:
      player1_y_coor = 0
      if player2_y_coor > 415:
      player2_y_coor = 415
      if player2_y_coor < 0:
      player2_y_coor = 0

    • @guillemora7622
      @guillemora7622 2 ปีที่แล้ว

      Hola, cuando pongo este codigo y llega al final se para y ya no e mueve nunca, en que parte del codigo lo incluiste? yo lo tengo despues de declarar el movimiento, ayudame porfavor jaja

    • @guillemora7622
      @guillemora7622 2 ปีที่แล้ว

      #Modifica las coordenadas de jugadores y pelota
      coord_y1 += speed_y1 ---> debajo de esta orden lo puse para que funcionara
      if (coord_y1) < 5 or (coord_y1+PLAYER_H) > 600-5:
      speed_y1 = 0
      coord_y2 += speed_y2
      if (coord_y2) < 5 or (coord_y2+PLAYER_H) > 600-5:
      speed_y2 = 0

  • @juankmarcelo1762
    @juankmarcelo1762 3 ปีที่แล้ว +1

    tus videos son excelentes, bro... gracias

  • @maestrobombillo9887
    @maestrobombillo9887 2 ปีที่แล้ว

    Que gran serie de videos, todo se facilita y es genial que todo lo que vemos se aplique en un trabajo, solo me quedo con la duda de como poner puntuaje para cada jugador, aun no termino la serie, pero creo que aqui hubiera quedado de maravilla, de igual manera un saludo

    • @MundoPython
      @MundoPython  2 ปีที่แล้ว

      Aquí puedes encontrar como poner un marcador y/o texto en la pantalla
      th-cam.com/play/PLuB3bC9rWQAuzlz932pjjFLE1q8caF21N.html

  • @danielarochacanaveral3413
    @danielarochacanaveral3413 3 ปีที่แล้ว

    Mi primer juego yeiiii!! gracias amigo.

  • @eltarzantronco1549
    @eltarzantronco1549 4 ปีที่แล้ว +8

    Buen video, crees poder subir uno sobre cómo usar sprites para animaciones

    • @MundoPython
      @MundoPython  4 ปีที่แล้ว +5

      Siii, a eso quiero llegar... (lentamente)

    • @jemzdj
      @jemzdj 3 ปีที่แล้ว

      puedes revisar mi canal de youtube amigo espero te ayude

  • @oscardavidvallepereyra7692
    @oscardavidvallepereyra7692 2 ปีที่แล้ว

    Para agregar los limites a las barreras, pueden hacerlo asi:
    player1_y_coor += player1_speed
    if player1_y_coor > 510:
    player1_y_coor = 510
    if player1_y_coor < 0:
    player1_y_coor = 0
    player2_y_coor += player2_speed
    if player2_y_coor > 510:
    player2_y_coor = 510
    if player2_y_coor < 0:
    player2_y_coor = 0

    • @mauro4436
      @mauro4436 ปีที่แล้ว

      Genio, yo lo habia hecho parecido pero le ponia la velocidad en 0, aunque eso me generaba un bug que podia "traspasar los limites" tocando muchas veces la flecha para arriba o la W.

  • @agario6357
    @agario6357 4 ปีที่แล้ว +1

    excelente vídeo amigo esta genial.

  • @OrlandoLopez-d8k
    @OrlandoLopez-d8k ปีที่แล้ว

    Una pequeña pregunta el event.type que se uso en las lineas de codigo del primer for es usado para traer algun atributo, o es una palabra clave para traer un dato deuna lista del evento o que realmente hace type, gracias por la ayuda de antemano

  • @julian9200
    @julian9200 2 ปีที่แล้ว

    Muy buen tutoria, gracias. Pero x
    q en vez de usar la variable de speed, no cambias directamente las coordenadas de Y

  • @emiliano103091
    @emiliano103091 ปีที่แล้ว

    buenas... como se hace para poner texto en el juego?... vi artículos y post en stesckoverflow pero no termino de entender aparentemente 😅

  • @pao18ist
    @pao18ist 4 ปีที่แล้ว +2

    Me han servido mucho tus videos, muchas gracias.
    tengo un pregunta, con respecto al movimiento de los jugadores por medio del teclado, ¿sabes que debo hacer para que pueda tener la tecla sostenida y aun así se mueva el jugador?; replique lo que hiciste en el video, pero los jugadores no se mueven si tengo la tecla sostenida

    • @MundoPython
      @MundoPython  4 ปีที่แล้ว +1

      sería muy dificil explicarlo en un comentario, y de hecho en un futuro video subiré un pequeño proyecto donde puedes dejar presionada la tecla y se continúa moviendo. pero el método que necesitas es
      pygame.mouse.get_pressed por si quieres bucarlo y averiguarlo por ti en la documentación. un saludo.

    • @KmeleoNCL
      @KmeleoNCL 3 ปีที่แล้ว

      prueba cambiar el orden a tus comandos... a mi me pasaba que la bola no avanzaba si no apretaba alguna tecla, o tambien que al presionar las teclas si se movian los jugadores pero con un pequeño 'lag' al empezar. Creo que el if event.type == pygame.KEYDOWN... debe ir a la misma altura que el if event.type == pygame.QUIT...
      Y el jugador1_x += jugador1_speed_x
      Y el jugador1_x += jugador1_speed_x
      Deben ir a la altura del for event...

  • @alejrandom6592
    @alejrandom6592 2 ปีที่แล้ว

    Sos un crack 👌

  • @KitsunesTech
    @KitsunesTech ปีที่แล้ว

    Una pregunta, esta mas optimizado hacer la resta en google y poner directo 255 en vez de 300-45 o es lo mismo¿

  • @joseeduardosanchezhernande9463
    @joseeduardosanchezhernande9463 ปีที่แล้ว

    Hola, estoy creando un pong pero tengo un problema con las colisiones, cuando la pelota toca la parte superior o inferior del rectangulo se queda unida y lo recorre de manera vertical, veo que en el minuto 24:38 te ocurre lo mismo a ti... Sabes como solucionarlo?

    • @samir5404
      @samir5404 ปีที่แล้ว

      pudiste solucionarlo? tengo el mismo problema y no se como arreglarlo

    • @gabrielcenturion7375
      @gabrielcenturion7375 ปีที่แล้ว

      La verdad creo que posiblemente hayas resuelto el problema, pero igual te dejo mi solución:
      *A la hora de las colisiones lo que hice fue simplemente reiniciar la variable de velocidad a su estado anterior y luego hacer que esta fuera en su lado contrario. Ejemplo:
      if ball.colliderect(player_1):
      ball_speed_x = 4
      ball_speed_x *= -1
      if ball.colliderect(player_2):
      ball_speed_x = 4
      ball_speed_x *= -1
      Tuve que hacerlo de forma individual para cada jugador de lo contrario solo tomaba una de las colisiones y la otra era invisible. Espero te pueda servir. Saludos.

    • @j.k6005
      @j.k6005 ปีที่แล้ว

      ya seguro lo resolviste, pero para el que esta por primera vez con este error, deben poner el if de la colision justo debajo de su zona de dibujo .

  • @rogeliioburgos7848
    @rogeliioburgos7848 4 ปีที่แล้ว

    en las coaliciones tengo un error pelota no defined

  • @ProgramandoConGonzalo
    @ProgramandoConGonzalo 3 ปีที่แล้ว

    de pygame lo puedes exportar android .apk?

  • @nehemiah486
    @nehemiah486 4 ปีที่แล้ว

    Excelente tutorial.

  • @aztecsavo82
    @aztecsavo82 4 ปีที่แล้ว

    Excelente video \m/

  • @oscarrodriguez6381
    @oscarrodriguez6381 2 ปีที่แล้ว

    Yo ya habia hecho pong con turtle :/ pero es interesante este tambien :D

  • @dali4510
    @dali4510 ปีที่แล้ว +1

    Tengo un problema muy extraño. El programa funciona a la perfección, sin embargo, cuando la pelota sale por el lado izquierdo, por unos segundos, antes de volver al centro, aparece una barra vertical que cubre todo el ancho de la pantalla, copié tu código de GIT para ver cuál era el problema, y me sigue apareciendo esa barra vertical ¿cómo es posible, que usando exactamente el mismo código, ocurra esto?

    • @LuisEn20005
      @LuisEn20005 ปีที่แล้ว +1

      eso ocurre porque cuando la bola toca el límite 0, sale esa barra, cambia que el límite sea el radio de la bola, ejemplo que le cambies 10, ya que el centro de la bola tocará esa coordenada y no saldrá la barra

    • @dali4510
      @dali4510 ปีที่แล้ว +1

      @@LuisEn20005 Gracias amigo, me la solucionaste 👍

    • @LuisEn20005
      @LuisEn20005 ปีที่แล้ว +1

      @@dali4510 un gusto, tambien experimenté esa parte

  • @VergaraTelechea
    @VergaraTelechea 4 ปีที่แล้ว

    Hola, muy buenos videos. Recién estoy comenzando con python y esto me sirve mucho. Una consulta, porque en la coordenada "y" para presionar la tecla "up" se pone un -3 y no un 3?

    • @MundoPython
      @MundoPython  4 ปีที่แล้ว

      Para poder moverte en el plano cartesiano de pygame, un valor pequeño en Y significa que aparecerás “arriba”

    • @VergaraTelechea
      @VergaraTelechea 4 ปีที่แล้ว

      @@MundoPython Ah ok. Listo. Gracias por responder tan rapido. Saludos

  • @alanfernandez7113
    @alanfernandez7113 4 ปีที่แล้ว

    Que buen video

  • @samir5404
    @samir5404 ปีที่แล้ว +1

    dejo mi codigo por si a alguien le sirve, pude incluir que los jugadores no puedan salirse de la pantalla: import pygame
    pygame.init()
    BLANCO = (255,255,255)
    NEGRO = (0, 0, 0)
    clock = pygame.time.Clock()
    ancho = 800
    alto = 500
    ventana = pygame.display.set_mode((ancho,alto))
    #hacer que no aparezca el mouse en la pantalla
    pygame.mouse.set_visible(False)
    #jugador 1 (el de la izquierda)
    x1 = 20
    y1 = (alto/2)-50
    speed_y1 = 0
    #jugador 2 (el de la derecha)
    x2 = ancho - 40
    y2 = (alto/2)-50
    speed_y2 = 0
    #pelota
    x3 = ancho/2
    y3 = alto/2
    speed_x3 = 4
    speed_y3 = 4
    while True:
    for event in pygame.event.get():
    if event.type == pygame.QUIT:
    pygame.quit()
    exit()

    #eventos del teclado
    if event.type == pygame.KEYDOWN:
    #movimiento del jugador 1
    if event.key == pygame.K_w:
    speed_y1 = -6
    if event.key == pygame.K_s:
    speed_y1 = 6
    #movimiento del jugador 2
    if event.key == pygame.K_UP:
    speed_y2 = -6
    if event.key == pygame.K_DOWN:
    speed_y2 = 6
    if event.type == pygame.KEYUP:
    #movimiento del jugador 1
    if event.key == pygame.K_w:
    speed_y1 = 0
    if event.key == pygame.K_s:
    speed_y1 = 0
    #movimiento del jugador 2
    if event.key == pygame.K_UP:
    speed_y2 = 0
    if event.key == pygame.K_DOWN:
    speed_y2 = 0
    ventana.fill(NEGRO)
    #---zona dibujo---
    jugador1 = pygame.draw.rect(ventana,BLANCO,(x1,y1,20,100))
    jugador2 = pygame.draw.rect(ventana,BLANCO,(x2,y2,20,100))
    pelota = pygame.draw.circle(ventana,BLANCO,(x3,y3),10)
    #---zona dibujo---
    #---movimiento jugadores---
    y1 += speed_y1
    y2 += speed_y2
    #colision con la pelota y el jugador 1/2
    if pelota.colliderect(jugador1) or pelota.colliderect(jugador2):
    speed_x3 *= -1

    # movimiento pelota
    x3 += speed_x3
    y3 += speed_y3
    #verificar que los jugadores no puedan moverse afuera de la pantalla
    if y1>alto-100 or y1alto-100 or y2ancho or x3alto or y3

  • @CesarGarciadj
    @CesarGarciadj 2 ปีที่แล้ว

    Para resolver el problema para que los jugadores esten limitados a lo ancho prueba este código:
    #Modifying coords for our movements to players bar
    player1_y_coords += player1_y_speed
    if(player1_y_coords)600-10:
    player1_y_speed *= -1
    player2_y_coords += player2_y_speed
    if(player2_y_coords)600-10:
    player2_y_speed *= -1
    Espero que les sirva :)

  • @geraldinevs
    @geraldinevs 4 ปีที่แล้ว +2

    es normal que se me cierre la pantalla?

    • @gerabyte2f799
      @gerabyte2f799 4 ปีที่แล้ว

      No, es normal que tengas algún error de tipeado o de identación. A mí igual me pasó algo el video anyerior y estuve como 20 min. viendo que era xD
      Pd: perdón por llegar tarde

  • @guillemora7622
    @guillemora7622 2 ปีที่แล้ว

    Podrias decirme como hiciste para que las palas no se salgan del espacio de juego? no consigo resolverlo....:(

    • @MundoPython
      @MundoPython  2 ปีที่แล้ว

      la verdad no recuerdo exactamente el código, pero sólo con poner un if en la pared sobre si revasa x pixeles, regreses la pala a la posición como pala_x - 2, así se produce una especie de "rebote" o "tope"

  • @merlingresume
    @merlingresume 4 ปีที่แล้ว

    todo esta bien hasta que llego a la parte de la colision:
    al final me indica que
    if pelota.colliderect(jugador1) or pelota.colliderect(jugador2):
    ^
    IndentationError: unindent does not match any outer indentation level
    [Finished in 0.2s]

    • @MundoPython
      @MundoPython  4 ปีที่แล้ว

      revisa la identación...

  • @kevincanepa8500
    @kevincanepa8500 4 ปีที่แล้ว

    Como se hace para limitar el movimiento de las barras y que no puedan irse de la pantalla? estoy tratando de hacerlop pero no lo logre

    • @MundoPython
      @MundoPython  4 ปีที่แล้ว

      En los videos donde creo un juego de shooter se soluciona eso. date una vuelta para que aprendas "cómo"

    • @MrStirter007
      @MrStirter007 4 ปีที่แล้ว

      Yo lo hice asi
      #Player 1
      if event.key == pygame.K_UP: # Flechita arriba
      if (cord_y_player1 > 5):
      cord_y_player1 -= 1

      if event.key == pygame.K_DOWN: # Flechita abajo
      if (cord_y_player1 < 690):
      cord_y_player1 += 1

  • @26775301
    @26775301 4 ปีที่แล้ว +2

    Pude resolver parcialmente para que los jugadores no se salgan de la pantalla
    player1_y_coord += player1_y_speed
    if player1_y_coord < 0 or player1_y_coord > 510: # Comprobando de que el player 1 no salga de la pantalla
    player1_y_speed = 0
    player2_y_coord += player2_y_speed
    if player2_y_coord < 0 or player2_y_coord > 510: # Comprobando de que el player 2 no salga de la pantalla
    player2_y_speed = 0
    el drama es que se frenan en los bordes de la pantalla pero si presiono repetidas veces pueden salirse de la pantalla y para volver a moverse libremente debo presionar varias veces en el sentido contrario hasta que este dentro de los limites de la pantalla T_T

    • @tetedanco
      @tetedanco 4 ปีที่แล้ว +2

      le encontré la solución , en la linea : if event.key == pygame.K_w , le agregas: and player1_y_coord > 0: ,lo que haces con esto es que para que se mueva de nuevo el jugador uno, tiene que cumplir dos condiciones, que se presione la tecla y que la ubicación del jugador no este en el borde de la pantalla. si no cumple las dos condiciones la velocidad no va a ser -3 sino 0 , entonces no se podra mover mas , salvo que vayas en la otra direccion.

    • @26775301
      @26775301 4 ปีที่แล้ว +1

      @@tetedanco de pelos.. mañana mismo lo pruebo.. ahora.. a dormir... quiero demostrarle al profe que puedo hacer un pacman.... pague x un curso y nunca tocamos pyvame.. y eso que nos lo menciono 😅

    • @26775301
      @26775301 4 ปีที่แล้ว

      @@tetedanco intente tu soluccion... pero al colocarla solo me deja moverla hacia abajo... y se frena si intento hacia arriba 😶

    • @tetedanco
      @tetedanco 4 ปีที่แล้ว +1

      @@26775301 mnnn , ok cuando llegue a casa del trabajo te pongo como lo escribí porque a mi me funciono bien , osea además del código que pusiste abajo, luego en la línea que checa si estás pulsando la tecla que puso el profe ahí tenes que agregar el and , para el movimiento hacia arriba y después también para el movimiento hacia abajo, en un rato te lo paso !

    • @26775301
      @26775301 4 ปีที่แล้ว +1

      @@tetedanco ahhhhhh.. ademas de mi codigo... juaa 🤣 yo elimine el mio 😅😅😅 pero me gustaria ver como lo hiciste

  • @vortx8495
    @vortx8495 4 ปีที่แล้ว +1

    Hola, tengo un problema con sublime text, al principio cuando yo ponía un parentesis se me ponía el paréntesis que abre y el que cierra ( ), pero ahora no y no se por qué. Me podrías ayudar?. También tengo otro problema ya que me borra de izquierda a derecha, espero que me puedas ayudar, gracias.
    P.D. Buen vídeo

    • @26775301
      @26775301 4 ปีที่แล้ว

      Me mataste.... y si lo borras e instalas d nuevo?

  • @Saiyan2003
    @Saiyan2003 3 ปีที่แล้ว

    :3

  • @sleepsmoothsounds
    @sleepsmoothsounds 7 หลายเดือนก่อน

    Mas fácil game maker tiene menos vueltas