import pygame import sys # Initialize Pygame pygame.init() # Screen dimensions WIDTH, HEIGHT = 800, 600 screen = pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption('Pygame FPS and Event Display') # Colors BLACK = (0, 0, 0) WHITE = (255, 255, 255) RED = (255, 0, 0) # Set up the clock for managing the frame rate clock = pygame.time.Clock() font = pygame.font.Font(None, 36) # Object properties object_size = 50 object_x = WIDTH // 2 object_y = HEIGHT // 2 object_speed = 5 # Event text event_text = "" # Main loop running = True while running: # Handle events for event in pygame.event.get(): if event.type == pygame.QUIT: running = False if event.type in [pygame.KEYDOWN, pygame.KEYUP]: event_text = f"Event: {pygame.event.event_name(event.type)}, Key: {pygame.key.name(event.key)}" print(event_text) # Get the current state of all keyboard buttons keys = pygame.key.get_pressed() if keys[pygame.K_LEFT]: object_x -= object_speed if keys[pygame.K_RIGHT]: object_x += object_speed if keys[pygame.K_UP]: object_y -= object_speed if keys[pygame.K_DOWN]: object_y += object_speed # Ensure the object stays within the screen bounds object_x = max(0, min(WIDTH - object_size, object_x)) object_y = max(0, min(HEIGHT - object_size, object_y)) # Clear the screen screen.fill(BLACK) # Draw the moveable object pygame.draw.rect(screen, RED, (object_x, object_y, object_size, object_size)) # Calculate and display FPS fps = clock.get_fps() fps_text = font.render(f'FPS: {int(fps)}', True, WHITE) screen.blit(fps_text, (10, 10)) # Display the event text event_surface = font.render(event_text, True, WHITE) screen.blit(event_surface, (10, 50)) # Update the display pygame.display.flip() # Cap the frame rate at 60 FPS clock.tick(60) # Clean up and close the Pygame window pygame.quit() sys.exit()