¿Por qué usar "playerX_change" que te obliga a ver cuándo se deja de pulsar una tecla y no cambiar el valor directamente de playerX cada vez que se pulse la tecla? if event.key == paygame.K_LEFT: playerX += -0.1 if event.key == paygame.K_RIGHT: playerX += 0.1
Genial gracias por tu feedback. al programar hay muchos caminos y muchas buenas practicas que seguir para optimizar tu codigo.. sin embargo, el objetivo de estos tutoriales es mostrar los fundamentos de pygame. Espero que en proximas series podamos aplicar POO, buenas practicas. y un codigo mas optimizado. saludos
@@geekers9572 Me he instalado pygame, estoy haciendo pruebas y resula que el evento de pulsar una tecla sólo reacciona una vez. De ahí que tengas que usar la variable que dices. Estaba convencido que al dejar pulsada la tecla seguiría moviéndose.
@@MundoGamer-jfgalcantara Si correcto la variable es para controlar el estado en X. Y que el movimiento sea continúo. No una sola vez. Sin embargo como te comenté anteriormente hay muchas formas de hacerlo. Yo en el vídeo propongo la más sencilla.. que bueno que te tomaste el tiempo de realizar el código y ver porque lo estamos haciendo así, esa es la idea. Gracias por el feedback. Un saludo.
Hola, soy un alguien que recien se esta metiendo en la programacion y si bien entiendo como funciona los codigos, los ciclos while y for, como definir variables, etc. Normalmente le pido ayuda a ChatGPT si me quedo pillado en algun tema 😅, y le pedi que me optimizara el codigo y asi que: import pygame pygame.init() # Configuración de la ventana SCREEN_WIDTH = 1200 SCREEN_HEIGHT = 700 Screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT)) pygame.display.set_caption("#Coloca el titulo") icon = pygame.image.load('#Aqui va tu imagen') pygame.display.set_icon(icon) # Colores BLACK = (0, 0, 0) # Jugador PlayerImg = pygame.image.load('#imagen del jugador') PlayerX = 600 PlayerY = 350 PlayerX_change = 0 def player(x, y): Screen.blit(PlayerImg, (x, y)) def handle_events(): global PlayerX_change # Hacer PlayerX_change global para que pueda modificarse for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() # Cierra Pygame exit() # Sale del programa if event.type == pygame.KEYDOWN: if event.key == pygame.K_LEFT: PlayerX_change = -0.1 if event.key == pygame.K_RIGHT: PlayerX_change = 0.1 if event.type == pygame.KEYUP: if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT: PlayerX_change = 0 while True: Screen.fill(BLACK) # Llena la pantalla de negro handle_events() PlayerX += PlayerX_change player(PlayerX, PlayerY) pygame.display.update() Espero que te ayude tambien
¿Por qué usar "playerX_change" que te obliga a ver cuándo se deja de pulsar una tecla y no cambiar el valor directamente de playerX cada vez que se pulse la tecla?
if event.key == paygame.K_LEFT:
playerX += -0.1
if event.key == paygame.K_RIGHT:
playerX += 0.1
Genial gracias por tu feedback. al programar hay muchos caminos y muchas buenas practicas que seguir para optimizar tu codigo.. sin embargo, el objetivo de estos tutoriales es mostrar los fundamentos de pygame. Espero que en proximas series podamos aplicar POO, buenas practicas. y un codigo mas optimizado. saludos
@@geekers9572 Me he instalado pygame, estoy haciendo pruebas y resula que el evento de pulsar una tecla sólo reacciona una vez. De ahí que tengas que usar la variable que dices. Estaba convencido que al dejar pulsada la tecla seguiría moviéndose.
@@MundoGamer-jfgalcantara Si correcto la variable es para controlar el estado en X. Y que el movimiento sea continúo. No una sola vez. Sin embargo como te comenté anteriormente hay muchas formas de hacerlo. Yo en el vídeo propongo la más sencilla.. que bueno que te tomaste el tiempo de realizar el código y ver porque lo estamos haciendo así, esa es la idea. Gracias por el feedback. Un saludo.
Hola, soy un alguien que recien se esta metiendo en la programacion y si bien entiendo como funciona los codigos, los ciclos while y for, como definir variables, etc.
Normalmente le pido ayuda a ChatGPT si me quedo pillado en algun tema 😅, y le pedi que me optimizara el codigo y asi que:
import pygame
pygame.init()
# Configuración de la ventana
SCREEN_WIDTH = 1200
SCREEN_HEIGHT = 700
Screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("#Coloca el titulo")
icon = pygame.image.load('#Aqui va tu imagen')
pygame.display.set_icon(icon)
# Colores
BLACK = (0, 0, 0)
# Jugador
PlayerImg = pygame.image.load('#imagen del jugador')
PlayerX = 600
PlayerY = 350
PlayerX_change = 0
def player(x, y):
Screen.blit(PlayerImg, (x, y))
def handle_events():
global PlayerX_change # Hacer PlayerX_change global para que pueda modificarse
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit() # Cierra Pygame
exit() # Sale del programa
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
PlayerX_change = -0.1
if event.key == pygame.K_RIGHT:
PlayerX_change = 0.1
if event.type == pygame.KEYUP:
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
PlayerX_change = 0
while True:
Screen.fill(BLACK) # Llena la pantalla de negro
handle_events()
PlayerX += PlayerX_change
player(PlayerX, PlayerY)
pygame.display.update()
Espero que te ayude tambien