py_game_miyoo/main.py
2024-05-17 13:12:44 -07:00

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()