Crear menú de inicio en Pygame

Pygame es una biblioteca de Python que se puede usar específicamente para diseñar y crear juegos. Pygame solo admite juegos 2D creados con diferentes formas o sprites. Pygame no tiene un diseño de diseño incorporado ni ningún sistema de interfaz de usuario incorporado, lo que significa que no hay una manera fácil de crear una interfaz de usuario o niveles para un juego. La única forma de hacer niveles o diferentes menús en pygame es usando funciones.

Uso de funciones como menús

Las funciones en Pygame son una forma de contener diferentes menús o niveles al definir un tipo de evento en cada función y luego llamar a las funciones desde su función contenedora respectiva. 

Por ejemplo, se llamará a la función del juego si el jugador presiona el botón de reproducción en el menú de inicio. Entonces, la función del menú de inicio se convierte en funciones contenedoras para la función del juego. Lo importante a tener en cuenta es que la función de inicio no se puede llamar directamente desde la función del juego. Si el juego contiene diferentes niveles desbloqueables, el nivel anterior se convierte en la función de contenedor para el siguiente nivel.

Código de muestra para un juego que contiene el menú de inicio

Programa de Python para demostrar menús y niveles

Python

import pygame 
import sys 
  
  
# initializing the constructor 
pygame.init() 
  
# screen resolution 
res = (720,720) 
  
# opens up a window 
screen = pygame.display.set_mode(res) 
  
# white color 
color = (255,255,255) 
  
# light shade of the button 
color_light = (170,170,170) 
  
# dark shade of the button 
color_dark = (100,100,100) 
  
# stores the width of the 
# screen into a variable 
width = screen.get_width() 
  
# stores the height of the 
# screen into a variable 
height = screen.get_height() 
  
# defining a font 
smallfont = pygame.font.SysFont('Corbel',35) 
  
# rendering a text written in 
# this font 
text = smallfont.render('quit' , True , color) 
  
while True: 
      
    for ev in pygame.event.get(): 
          
        if ev.type == pygame.QUIT: 
            pygame.quit() 
              
        #checks if a mouse is clicked 
        if ev.type == pygame.MOUSEBUTTONDOWN: 
              
            #if the mouse is clicked on the 
            # button the game is terminated 
            if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40: 
                pygame.quit() 
                  
    # fills the screen with a color 
    screen.fill((60,25,60)) 
      
    # stores the (x,y) coordinates into 
    # the variable as a tuple 
    mouse = pygame.mouse.get_pos() 
      
    # if mouse is hovered on a button it 
    # changes to lighter shade 
    if width/2 <= mouse[0] <= width/2+140 and height/2 <= mouse[1] <= height/2+40: 
        pygame.draw.rect(screen,color_light,[width/2,height/2,140,40]) 
          
    else: 
        pygame.draw.rect(screen,color_dark,[width/2,height/2,140,40]) 
      
    # superimposing the text onto our button 
    screen.blit(text , (width/2+50,height/2)) 
      
    # updates the frames of the game 
    pygame.display.update() 

Producción:

Publicación traducida automáticamente

Artículo escrito por antrikshmisri y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *