79 lines
2 KiB
Python
79 lines
2 KiB
Python
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()
|