Movatterモバイル変換


[0]ホーム

URL:



Code forHow to Make Buttons in PyGame Tutorial


View on Github

button_pygame.py

# Importsimport sysimport pygame# Configurationpygame.init()fps = 60fpsClock = pygame.time.Clock()width, height = 640, 480screen = pygame.display.set_mode((width, height))font = pygame.font.SysFont('Arial', 40)objects = []class Button():    def __init__(self, x, y, width, height, buttonText='Button', onclickFunction=None, onePress=False):        self.x = x        self.y = y        self.width = width        self.height = height        self.onclickFunction = onclickFunction        self.onePress = onePress        self.fillColors = {            'normal': '#ffffff',            'hover': '#666666',            'pressed': '#333333',        }        self.buttonSurface = pygame.Surface((self.width, self.height))        self.buttonRect = pygame.Rect(self.x, self.y, self.width, self.height)        self.buttonSurf = font.render(buttonText, True, (20, 20, 20))        self.alreadyPressed = False        objects.append(self)    def process(self):        mousePos = pygame.mouse.get_pos()                self.buttonSurface.fill(self.fillColors['normal'])        if self.buttonRect.collidepoint(mousePos):            self.buttonSurface.fill(self.fillColors['hover'])            if pygame.mouse.get_pressed(num_buttons=3)[0]:                self.buttonSurface.fill(self.fillColors['pressed'])                if self.onePress:                    self.onclickFunction()                elif not self.alreadyPressed:                    self.onclickFunction()                    self.alreadyPressed = True            else:                self.alreadyPressed = False        self.buttonSurface.blit(self.buttonSurf, [            self.buttonRect.width/2 - self.buttonSurf.get_rect().width/2,            self.buttonRect.height/2 - self.buttonSurf.get_rect().height/2        ])        screen.blit(self.buttonSurface, self.buttonRect)def myFunction():    print('Button Pressed')customButton = Button(30, 30, 400, 100, 'Button One (onePress)', myFunction)customButton = Button(30, 140, 400, 100, 'Button Two (multiPress)', myFunction, True)# Game loop.while True:    screen.fill((20, 20, 20))    for event in pygame.event.get():        if event.type == pygame.QUIT:            pygame.quit()            sys.exit()    for object in objects:        object.process()    pygame.display.flip()    fpsClock.tick(fps)

Practical Python PDF Processing EBook - Search - Top


Join 50,000+ Python Programmers & Enthusiasts like you!



Tags

Practical Python PDF Processing EBook - About - Middle


New Tutorials

Popular Tutorials


Ethical Hacking with Python EBook - Topic - Bottom







[8]ページ先頭

©2009-2025 Movatter.jp