clean up prep for catching mouse clicks on buttons
This commit is contained in:
parent
f4e1184d5a
commit
7ec12c0ce5
|
@ -24,6 +24,7 @@ black = (0, 0, 0)
|
||||||
button_origin_x = 90
|
button_origin_x = 90
|
||||||
button_origin_y = 280
|
button_origin_y = 280
|
||||||
button_spacing = 140
|
button_spacing = 140
|
||||||
|
button_radius = 50
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Button:
|
class Button:
|
||||||
|
@ -113,15 +114,15 @@ def flash_button(b):
|
||||||
center_x = button_origin_x + (b.column * button_spacing)
|
center_x = button_origin_x + (b.column * button_spacing)
|
||||||
center_y = button_origin_y + (b.row * button_spacing)
|
center_y = button_origin_y + (b.row * button_spacing)
|
||||||
center = (center_x, center_y)
|
center = (center_x, center_y)
|
||||||
pygame.draw.circle(screen, white, center, 50, 4)
|
pygame.draw.circle(screen, white, center, button_radius, 4)
|
||||||
b.flashing = True
|
b.flashing = True
|
||||||
b.unflash_on = time.time() + 0.1
|
b.unflash_on = time.time() + 0.1
|
||||||
else:
|
else:
|
||||||
center_x = button_origin_x + (b.column * button_spacing)
|
center_x = button_origin_x + (b.column * button_spacing)
|
||||||
center_y = button_origin_y + (b.row * button_spacing)
|
center_y = button_origin_y + (b.row * button_spacing)
|
||||||
center = (center_x, center_y)
|
center = (center_x, center_y)
|
||||||
pygame.draw.circle(screen, black, center, 50, 4)
|
pygame.draw.circle(screen, black, center, button_radius, 4)
|
||||||
pygame.draw.circle(screen, yellow, center, 50, 2)
|
pygame.draw.circle(screen, yellow, center, button_radius, 2)
|
||||||
b.flashing = False
|
b.flashing = False
|
||||||
|
|
||||||
def draw_buttons():
|
def draw_buttons():
|
||||||
|
@ -130,7 +131,7 @@ def draw_buttons():
|
||||||
b.center_x = button_origin_x + (b.column * button_spacing)
|
b.center_x = button_origin_x + (b.column * button_spacing)
|
||||||
b.center_y = button_origin_y + (b.row * button_spacing)
|
b.center_y = button_origin_y + (b.row * button_spacing)
|
||||||
center = (b.center_x, b.center_y)
|
center = (b.center_x, b.center_y)
|
||||||
pygame.draw.circle(screen, yellow, center, 50, 2)
|
pygame.draw.circle(screen, yellow, center, button_radius, 2)
|
||||||
b_text = cheesy_font.render(b.label, True, white)
|
b_text = cheesy_font.render(b.label, True, white)
|
||||||
text_x = b.center_x - (b_text.get_width() // 2)
|
text_x = b.center_x - (b_text.get_width() // 2)
|
||||||
text_y = b.center_y - (b_text.get_height() // 2)
|
text_y = b.center_y - (b_text.get_height() // 2)
|
||||||
|
@ -156,72 +157,74 @@ draw_buttons()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
for event in pygame.event.get():
|
for event in pygame.event.get():
|
||||||
if event.type == pygame.QUIT or (event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE):
|
if event.type == pygame.QUIT:
|
||||||
pygame.quit()
|
pygame.quit()
|
||||||
sys.exit()
|
sys.exit()
|
||||||
#elif event.type == pygame.KEYDOWN:
|
if event.type == pygame.KEYDOWN:
|
||||||
# print(event.key)
|
if event.key == pygame.K_ESCAPE:
|
||||||
elif event.type == pygame.KEYDOWN and event.key == pygame.K_c:
|
pygame.quit()
|
||||||
display_num_whole = clear_display
|
sys.exit()
|
||||||
display_num_decimal = ""
|
elif event.key == pygame.K_c:
|
||||||
num_float = False
|
display_num_whole = clear_display
|
||||||
float_precision = 1
|
display_num_decimal = ""
|
||||||
flash_button(buttons[str(event.key)])
|
num_float = False
|
||||||
elif event.type == pygame.KEYDOWN and event.key == pygame.K_a:
|
float_precision = 1
|
||||||
display_num_whole = clear_display
|
flash_button(buttons[str(event.key)])
|
||||||
display_num_decimal = ""
|
elif event.key == pygame.K_a:
|
||||||
num_float = False
|
display_num_whole = clear_display
|
||||||
float_precision = 1
|
display_num_decimal = ""
|
||||||
flash_button(buttons[str(event.key)])
|
num_float = False
|
||||||
elif event.type == pygame.KEYDOWN and (event.key == pygame.K_PERIOD or event.key == pygame.K_KP_PERIOD):
|
float_precision = 1
|
||||||
actual_key = pygame.K_PERIOD
|
flash_button(buttons[str(event.key)])
|
||||||
flash_button(buttons[str(actual_key)])
|
elif event.key == pygame.K_PERIOD or event.key == pygame.K_KP_PERIOD:
|
||||||
num_float = True
|
actual_key = pygame.K_PERIOD
|
||||||
elif event.type == pygame.KEYDOWN and event.key in valid_keys_equals and not pygame.key.get_mods() & pygame.KMOD_SHIFT:
|
flash_button(buttons[str(actual_key)])
|
||||||
actual_key = pygame.K_EQUALS
|
num_float = True
|
||||||
flash_button(buttons[str(actual_key)])
|
elif event.key in valid_keys_equals and not pygame.key.get_mods() & pygame.KMOD_SHIFT:
|
||||||
elif event.type == pygame.KEYDOWN and event.key == pygame.K_BACKSPACE:
|
actual_key = pygame.K_EQUALS
|
||||||
flash_button(buttons[str(event.key)])
|
flash_button(buttons[str(actual_key)])
|
||||||
if num_float == True:
|
elif event.key == pygame.K_BACKSPACE:
|
||||||
if display_num_decimal == "":
|
flash_button(buttons[str(event.key)])
|
||||||
num_float = False
|
if num_float == True:
|
||||||
|
if display_num_decimal == "":
|
||||||
|
num_float = False
|
||||||
|
if len(display_num_whole) > 1:
|
||||||
|
display_num_whole = display_num_whole[:-1]
|
||||||
|
elif display_num_whole != "0":
|
||||||
|
display_num_whole = "0"
|
||||||
|
else:
|
||||||
|
display_num_decimal = display_num_decimal[:-1]
|
||||||
|
else:
|
||||||
if len(display_num_whole) > 1:
|
if len(display_num_whole) > 1:
|
||||||
display_num_whole = display_num_whole[:-1]
|
display_num_whole = display_num_whole[:-1]
|
||||||
elif display_num_whole != "0":
|
elif display_num_whole != "0":
|
||||||
display_num_whole = "0"
|
display_num_whole = "0"
|
||||||
|
elif (event.key == pygame.K_EQUALS and pygame.key.get_mods() & pygame.KMOD_SHIFT) or event.key == pygame.K_KP_PLUS:
|
||||||
|
actual_key = pygame.K_PLUS
|
||||||
|
flash_button(buttons[str(actual_key)])
|
||||||
|
elif event.key == pygame.K_MINUS or event.key == pygame.K_KP_MINUS:
|
||||||
|
actual_key = pygame.K_MINUS
|
||||||
|
flash_button(buttons[str(actual_key)])
|
||||||
|
elif (event.key == pygame.K_8 and pygame.key.get_mods() & pygame.KMOD_SHIFT) or event.key == pygame.K_KP_MULTIPLY:
|
||||||
|
actual_key = pygame.K_ASTERISK
|
||||||
|
flash_button(buttons[str(actual_key)])
|
||||||
|
elif event.key == pygame.K_SLASH or event.key == pygame.K_KP_DIVIDE:
|
||||||
|
actual_key = pygame.K_SLASH
|
||||||
|
flash_button(buttons[str(actual_key)])
|
||||||
|
elif event.key in valid_keys_numbers:
|
||||||
|
if str(event.key) in keypad_map.keys():
|
||||||
|
actual_key = keypad_map[str(event.key)]
|
||||||
else:
|
else:
|
||||||
display_num_decimal = display_num_decimal[:-1]
|
actual_key = event.key
|
||||||
else:
|
flash_button(buttons[str(actual_key)])
|
||||||
if len(display_num_whole) > 1:
|
if len(display_num_whole) <= 10:
|
||||||
display_num_whole = display_num_whole[:-1]
|
if num_float == False:
|
||||||
elif display_num_whole != "0":
|
if display_num_whole == clear_display and actual_key != pygame.K_0:
|
||||||
display_num_whole = "0"
|
display_num_whole = chr(actual_key)
|
||||||
elif event.type == pygame.KEYDOWN and ((event.key == pygame.K_EQUALS and pygame.key.get_mods() & pygame.KMOD_SHIFT) or event.key == pygame.K_KP_PLUS):
|
elif display_num_whole != clear_display:
|
||||||
actual_key = pygame.K_PLUS
|
display_num_whole += chr(actual_key)
|
||||||
flash_button(buttons[str(actual_key)])
|
else:
|
||||||
elif event.type == pygame.KEYDOWN and (event.key == pygame.K_MINUS or event.key == pygame.K_KP_MINUS):
|
display_num_decimal += chr(actual_key)
|
||||||
actual_key = pygame.K_MINUS
|
|
||||||
flash_button(buttons[str(actual_key)])
|
|
||||||
elif event.type == pygame.KEYDOWN and ((event.key == pygame.K_8 and pygame.key.get_mods() & pygame.KMOD_SHIFT) or event.key == pygame.K_KP_MULTIPLY):
|
|
||||||
actual_key = pygame.K_ASTERISK
|
|
||||||
flash_button(buttons[str(actual_key)])
|
|
||||||
elif event.type == pygame.KEYDOWN and (event.key == pygame.K_SLASH or event.key == pygame.K_KP_DIVIDE):
|
|
||||||
actual_key = pygame.K_SLASH
|
|
||||||
flash_button(buttons[str(actual_key)])
|
|
||||||
elif event.type == pygame.KEYDOWN and event.key in valid_keys_numbers:
|
|
||||||
if str(event.key) in keypad_map.keys():
|
|
||||||
actual_key = keypad_map[str(event.key)]
|
|
||||||
else:
|
|
||||||
actual_key = event.key
|
|
||||||
flash_button(buttons[str(actual_key)])
|
|
||||||
if len(display_num_whole) <= 10:
|
|
||||||
if num_float == False:
|
|
||||||
if display_num_whole == clear_display and actual_key != pygame.K_0:
|
|
||||||
display_num_whole = chr(actual_key)
|
|
||||||
elif display_num_whole != clear_display:
|
|
||||||
display_num_whole += chr(actual_key)
|
|
||||||
else:
|
|
||||||
display_num_decimal += chr(actual_key)
|
|
||||||
if display_num_whole != old_display_num_whole or display_num_decimal != old_display_num_decimal:
|
if display_num_whole != old_display_num_whole or display_num_decimal != old_display_num_decimal:
|
||||||
print(f"Number: {display_num_whole}", end='')
|
print(f"Number: {display_num_whole}", end='')
|
||||||
if num_float == True:
|
if num_float == True:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user