Граница для кнопки
Как можно сделать границы для кнопок белым цветом. Спасибо заранее!
import pygame
WHITE = (255,255,255)
BLACK = ( 0, 0, 0)
RED = (255, 0, 0)
GREEN = ( 0,255, 0)
BLUE = ( 0, 0,255)
YELLOW = (255,255, 0)
def button_create(text, rect, inactive_color, active_color, action):
font = pygame.font.Font(None, 40)
button_rect = pygame.Rect(rect)
text2 = font.render(text, True, WHITE)
text_rect2 = text2.get_rect(center=button_rect.center)
text1 = font.render(text, True, BLACK)
text_rect1 = text1.get_rect(center=button_rect.center)
return [text2, text_rect2, text1, text_rect1, button_rect, inactive_color, active_color, action, False]
def button_check(info, event):
text2, text_rect2, text1, text_rect1, rect, inactive_color, active_color, action, hover = info
if event.type == pygame.MOUSEMOTION:
# hover = True/False
info[-1] = rect.collidepoint(event.pos)
elif event.type == pygame.MOUSEBUTTONDOWN:
if hover and action:
action()
def button_draw(screen, info):
text2, text_rect2, text1, text_rect1, rect, inactive_color, active_color, action, hover = info
if hover:
color = active_color
pygame.draw.rect(screen, color, rect)
screen.blit(text1, text_rect1)
else:
color = inactive_color
pygame.draw.rect(screen, color, rect)
screen.blit(text2, text_rect2)
def on_click_button_1():
global stage
stage = 'main'
print('You clicked Button 1')
def on_click_button_2():
global stage
stage = 'nav'
print('You clicked Button 2')
def on_click_button_3():
global stage
stage = 'xpdr'
print('You clicked Button 3')
def on_click_button_4():
global stage
stage = 'radios'
print('You clicked Button 4')
def on_click_button_5():
global stage
stage = 'misc'
print('You clicked Button 5')
def on_click_button_6():
global stage
stage = 'hud'
print('You clicked Button 6')
def on_click_button_return():
global stage
stage = 'menu'
print('You clicked Button Return')
# --- main --- (lower_case_names)
# - init -
pygame.init()
display = (800, 600) #800 - ширина, 600 - высота
screen = pygame.display.set_mode(display)
screen_rect = screen.get_rect()
# - objects -
stage = 'menu'
button_1 = button_create("MAIN", (1, 550, 133, 55), BLACK, WHITE, on_click_button_1)
button_2 = button_create("NAV", (133, 550, 133, 55), BLACK, WHITE, on_click_button_2)
button_3 = button_create("XPDR", (266, 550, 133, 55), BLACK, WHITE, on_click_button_3)
button_4 = button_create("RADIOS", (399, 550, 133, 55), BLACK, WHITE, on_click_button_4)
button_5 = button_create("MISC", (532, 550, 133, 55), BLACK, WHITE, on_click_button_5)
button_6 = button_create("HUD", (665, 550, 133, 55), BLACK, WHITE, on_click_button_6)
button_return = button_create("RETURN", (300, 400, 200, 75), RED, GREEN, on_click_button_return)
# - mainloop -
running = True
while running:
# - events -
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
if stage == 'menu':
button_check(button_1, event)
button_check(button_2, event)
button_check(button_3, event)
button_check(button_4, event)
button_check(button_5, event)
button_check(button_6, event)
elif stage == 'main':
button_check(button_1, event)
button_check(button_2, event)
button_check(button_3, event)
button_check(button_4, event)
button_check(button_5, event)
button_check(button_6, event)
button_check(button_return, event)
elif stage == 'nav':
button_check(button_1, event)
button_check(button_2, event)
button_check(button_3, event)
button_check(button_4, event)
button_check(button_5, event)
button_check(button_6, event)
button_check(button_return, event)
elif stage == 'xpdr':
button_check(button_1, event)
button_check(button_2, event)
button_check(button_3, event)
button_check(button_4, event)
button_check(button_5, event)
button_check(button_6, event)
button_check(button_return, event)
elif stage == 'radios':
button_check(button_1, event)
button_check(button_2, event)
button_check(button_3, event)
button_check(button_4, event)
button_check(button_5, event)
button_check(button_6, event)
button_check(button_return, event)
elif stage == 'misc':
button_check(button_1, event)
button_check(button_2, event)
button_check(button_3, event)
button_check(button_4, event)
button_check(button_5, event)
button_check(button_6, event)
button_check(button_return, event)
elif stage == 'hud':
button_check(button_1, event)
button_check(button_2, event)
button_check(button_3, event)
button_check(button_4, event)
button_check(button_5, event)
button_check(button_6, event)
button_check(button_return, event)
#elif stage == 'exit':
# pass
# - draws -
screen.fill(BLACK)
if stage == 'menu':
button_draw(screen, button_1)
button_draw(screen, button_2)
button_draw(screen, button_3)
button_draw(screen, button_4)
button_draw(screen, button_5)
button_draw(screen, button_6)
elif stage == 'main':
button_draw(screen, button_1)
button_draw(screen, button_2)
button_draw(screen, button_3)
button_draw(screen, button_4)
button_draw(screen, button_5)
button_draw(screen, button_6)
button_draw(screen, button_return)
elif stage == 'nav':
button_draw(screen, button_1)
button_draw(screen, button_2)
button_draw(screen, button_3)
button_draw(screen, button_4)
button_draw(screen, button_5)
button_draw(screen, button_6)
button_draw(screen, button_return)
elif stage == 'xpdr':
button_draw(screen, button_1)
button_draw(screen, button_2)
button_draw(screen, button_3)
button_draw(screen, button_4)
button_draw(screen, button_5)
button_draw(screen, button_6)
button_draw(screen, button_return)
elif stage == 'radios':
button_draw(screen, button_1)
button_draw(screen, button_2)
button_draw(screen, button_3)
button_draw(screen, button_4)
button_draw(screen, button_5)
button_draw(screen, button_6)
button_draw(screen, button_return)
elif stage == 'misc':
button_draw(screen, button_1)
button_draw(screen, button_2)
button_draw(screen, button_3)
button_draw(screen, button_4)
button_draw(screen, button_5)
button_draw(screen, button_6)
button_draw(screen, button_return)
elif stage == 'hud':
button_draw(screen, button_1)
button_draw(screen, button_2)
button_draw(screen, button_3)
button_draw(screen, button_4)
button_draw(screen, button_5)
button_draw(screen, button_6)
button_draw(screen, button_return)
#elif stage == 'exit':
# pass
pygame.display.update()
# - end -
pygame.quit()