Allow number pad digits and decimals to work
This commit is contained in:
		
							parent
							
								
									2740e7ea6c
								
							
						
					
					
						commit
						d1e0e12b1a
					
				| 
						 | 
					@ -25,8 +25,7 @@ logo_text_1 = cheesy_font.render("Cheesy", True, (240, 240, 20))
 | 
				
			||||||
logo_text_2 = cheesy_font.render("Calculator", True, (240, 240, 20))
 | 
					logo_text_2 = cheesy_font.render("Calculator", True, (240, 240, 20))
 | 
				
			||||||
screen.blit(logo_text_1, (width // 2 - logo_text_1.get_width() // 2 + 80, -15))
 | 
					screen.blit(logo_text_1, (width // 2 - logo_text_1.get_width() // 2 + 80, -15))
 | 
				
			||||||
screen.blit(logo_text_2, (width // 2 - logo_text_2.get_width() // 2 + 80, 30))
 | 
					screen.blit(logo_text_2, (width // 2 - logo_text_2.get_width() // 2 + 80, 30))
 | 
				
			||||||
sevenseg_font = pygame.font.Font(os.path.join("font", "Seven Segment.ttf"), 120)
 | 
					sevenseg_font = pygame.font.Font(os.path.join("font", "Seven Segment.ttf"), 80)
 | 
				
			||||||
pygame.draw.rect(screen, (240, 240, 20), pygame.Rect(10, 95, 580, 130), 2)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
while True:
 | 
					while True:
 | 
				
			||||||
    for event in pygame.event.get():
 | 
					    for event in pygame.event.get():
 | 
				
			||||||
| 
						 | 
					@ -36,19 +35,28 @@ while True:
 | 
				
			||||||
        elif event.type == pygame.KEYDOWN and event.key == pygame.K_c:
 | 
					        elif event.type == pygame.KEYDOWN and event.key == pygame.K_c:
 | 
				
			||||||
            num_display = 0
 | 
					            num_display = 0
 | 
				
			||||||
            float_precision = 1
 | 
					            float_precision = 1
 | 
				
			||||||
        elif event.type == pygame.KEYDOWN and event.key == pygame.K_PERIOD:
 | 
					        elif event.type == pygame.KEYDOWN and (event.key == pygame.K_PERIOD or event.key == pygame.K_KP_PERIOD):
 | 
				
			||||||
            #num_float = True
 | 
					            #num_float = True
 | 
				
			||||||
            pass
 | 
					            pass
 | 
				
			||||||
        elif event.type == pygame.KEYDOWN and event.key >= pygame.K_0 and event.key <= pygame.K_9 and len(str(num_display)) < 9:
 | 
					        elif event.type == pygame.KEYDOWN \
 | 
				
			||||||
            if num_display == 0 and event.key != pygame.K_0:
 | 
					          and ((event.key >= pygame.K_0 and event.key <= pygame.K_9) or (event.key >= pygame.K_KP1 and event.key <= pygame.K_KP0)) \
 | 
				
			||||||
                num_display = int(chr(event.key))
 | 
					          and len(str(num_display)) < 14:
 | 
				
			||||||
 | 
					            if event.key == pygame.K_KP0:
 | 
				
			||||||
 | 
					                actual_key = pygame.K_0
 | 
				
			||||||
 | 
					            elif event.key >= pygame.K_KP1 and event.key <= pygame.K_KP9:
 | 
				
			||||||
 | 
					                actual_key = event.key - 1073741864
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                num_display = (num_display * 10) + int(chr(event.key))
 | 
					                actual_key = event.key
 | 
				
			||||||
 | 
					            if num_display == 0 and actual_key != pygame.K_0:
 | 
				
			||||||
 | 
					                num_display = int(chr(actual_key))
 | 
				
			||||||
 | 
					            else:
 | 
				
			||||||
 | 
					                num_display = (num_display * 10) + int(chr(actual_key))
 | 
				
			||||||
    if num_display != old_num_display:
 | 
					    if num_display != old_num_display:
 | 
				
			||||||
        print(f"Number: {num_display}")
 | 
					        print(f"Number: {num_display}")
 | 
				
			||||||
        old_num_display = num_display
 | 
					        old_num_display = num_display
 | 
				
			||||||
    pygame.draw.rect(screen, (0, 0, 0), pygame.Rect(12, 97, 576, 126))
 | 
					    pygame.draw.rect(screen, (0, 0, 0), pygame.Rect(12, 97, 576, 126))
 | 
				
			||||||
    num_show = (num_float == False) 
 | 
					    num_show = (num_float == False) 
 | 
				
			||||||
    text = sevenseg_font.render(str(num_display) + ".", True, (255, 255, 255))
 | 
					    text = sevenseg_font.render(str(num_display) + ".", True, (255, 255, 255))
 | 
				
			||||||
    screen.blit(text, (580 - text.get_width(), 100))
 | 
					    screen.blit(text, (580 - text.get_width(), 110))
 | 
				
			||||||
 | 
					    pygame.draw.rect(screen, (240, 240, 20), pygame.Rect(10, 100, 580, 110), 2)
 | 
				
			||||||
    pygame.display.flip()
 | 
					    pygame.display.flip()
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user