Pygame es un conjunto multiplataforma de módulos Python diseñados para escribir videojuegos. Incluye gráficos por computadora y bibliotecas de sonido diseñadas para usarse con el lenguaje de programación Python.
El módulo sys en Python proporciona varias funciones y variables que se utilizan para manipular diferentes partes del entorno de tiempo de ejecución de Python. Permite operar sobre el intérprete ya que proporciona acceso a las variables y funciones que interactúan fuertemente con el intérprete.
Manejo de entradas de teclados
Pasos básicos para manejar la entrada del teclado:
- Importe las bibliotecas requeridas.
- Cree un objeto de superficie de visualización utilizando el método display.set_mode() de pygame.
- Cargue la imagen/objeto.
- Cree un evento de clic, es decir, KEYDOWN
- Defina todas las claves de eventos y realice la tarea.
- Cree un evento de pausa, es decir, KEYUP
- Copiar el objeto de superficie de texto en el objeto de superficie de visualización usando el método blit() del objeto de superficie de visualización de pygame.
- Muestre el objeto de la superficie de visualización en la ventana de pygame utilizando el método display.update() de pygame.
Ejemplo:
Python3
# importing all the required libraries import pygame from pygame.locals import * from sys import exit # initiating pygame library to use it's # functions pygame.init() # declaring windows/surface width and height size = width, height = 740, 480 screen = pygame.display.set_mode(size) # loads a new image from a file and convert() # will create a copy of image on surface img = pygame.image.load("char.png").convert() # declaring value to variables x, y = 0, 0 move_x, move_y = 0, 0 while True: for event in pygame.event.get(): if event.type == pygame.QUIT: # pygame.QUIT deactivates pygame exit() # exit() is sys function used to # kill the program # KEYDOWN event will be triggered everytime # we press a button if event.type == KEYDOWN: if event.key == K_LEFT: move_x = -0.3 # object moves -0.3 towards x axis print("pressed LEFT") elif event.key == K_RIGHT: move_x = +0.3 # object moves 0.3 towards x axis print("pressed RIGHT") elif event.key == K_UP: move_y = -0.3 # object moves -0.3 towards y axis print("pressed UP") elif event.key == K_DOWN: move_y = +0.3 # object moves 0.3 towards y axis print("pressed DOWN") # K_LCTRL event will be triggered everytime we # press left CTRL button elif event.key == K_LCTRL: # declaring new image file to update image # everytime left CTRL is pressed img = pygame.image.load("char1.png") pygame.display.update() # update image elif event.key == K_BACKSPACE: # this the default file we declared in start # and it will restore it everytime we press # backspace img = pygame.image.load("char.png") pygame.display.update() # update image # it will get triggered when left key is released if event.type == KEYUP: if event.key == K_LEFT: move_x = 0 # movement stops elif event.key == K_RIGHT: move_x = 0 # movement stops elif event.key == K_UP: move_y = 0 # movement stops elif event.key == K_DOWN: move_y = 0 # movement stops """KEYUP event will be triggered when the release the keys and x,y coordinates will not change anymore""" x += move_x y += move_y # updating coordinate values of x,y screen.fill((255, 255, 255)) # the function will fill the background with white color screen.blit(img, (x, y)) # blit() function will copy image file to x,y coordinates. pygame.display.update() # draw the objects on screen
Producción:
Manejo de entradas de mouse:
Pasos básicos para manejar la entrada del mouse:
- Importe las bibliotecas requeridas.
- Cree un objeto de superficie de visualización utilizando el método display.set_mode() de pygame.
- Cargue la imagen/objeto.
- Cree un evento de clic, es decir, MOUSEBUTTONDOWN.
- Defina todas las claves de eventos y realice la tarea.
- Cree un evento de pausa, es decir, MOUSEBUTTONUP.
- Copiar el objeto de superficie de texto en el objeto de superficie de visualización usando el método blit() del objeto de superficie de visualización de pygame.
- Muestre el objeto de la superficie de visualización en la ventana de pygame utilizando el método display.update() de pygame.
Ejemplo:
Python3
# importing all the required libraries import pygame from pygame.locals import * from sys import exit # initiating pygame library to use it's functions pygame.init() # declaring windows/surface width and height size = width, height = 740, 480 screen = pygame.display.set_mode(size) # loads a new image from a file and convert() # will create a copy of image on surface img = pygame.image.load("char.png").convert() # declaring value to variables clicking = False right_clicking = False middle_click = False while True: mx, my = pygame.mouse.get_pos() # gets mouse x,y coordinates location = [mx, my] for event in pygame.event.get(): if event.type == pygame.QUIT: # pygame.QUIT deactivates pygame exit() # exit() is sys function used to kill the program # MOUSEBUTTONDOWN event is triggered when a button is pressed if event.type == MOUSEBUTTONDOWN: # returns true when mouse left button is clicked if event.button == 1: clicking = True # declaring new image file to update image # everytime left button clicking is true img = pygame.image.load("char1.png") pygame.display.update() # update image # returns true when mouse right button is clicked if event.button == 3: right_clicking = True # declaring new image file to update image # everytime right button is clicked img = pygame.image.load("char.png") pygame.display.update() # update image # returns true when mouse middle button is clicked if event.button == 2: middle_click = middle_click # rescale image when middle button clicking is true img = pygame.transform.scale(img, (100, 100)) pygame.display.update() # update image # MOUSEBUTTONUP is triggered when mouse button # is released(not clicked) if event.type == MOUSEBUTTONUP: if event.button == 1: clicking = False screen.fill((255, 255, 255)) # the function will fill the background # with white color screen.blit(img, (location[0], location[1])) # blit() function will copy image file # to x,y coordinates. pygame.display.update() # draw the objects on screen
Producción:
Publicación traducida automáticamente
Artículo escrito por vinamrayadav y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA