small-projects/pygame-imgui-v2/example.py
2025-04-08 11:28:40 -05:00

73 lines
2.1 KiB
Python

import pygame
import sys
from imgui import PyGUI
WIDTH, HEIGHT = 800, 600
class Ball:
def __init__(self):
self.pos = [WIDTH // 2, HEIGHT // 2]
self.speed = 5
self.direction = 45
self.radius = 20
self.color = (255, 0, 0)
def update(self):
# (For demonstration, implement ball movement if desired.)
pass
def draw(self, surface):
pygame.draw.circle(surface, self.color, (int(self.pos[0]), int(self.pos[1])), self.radius)
def main():
pygame.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("PyGUI Example")
clock = pygame.time.Clock()
PyGUI.init(screen)
ball = Ball()
ball_speed = ball.speed
ball_direction = ball.direction
ball_radius = ball.radius
ball_color_r, ball_color_g, ball_color_b = ball.color
bounce_enabled = False
while True:
events = pygame.event.get()
for event in events:
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
PyGUI.Update(events)
screen.fill((50, 50, 50))
# Draw the GUI window.
PyGUI.Begin("Ball Controls", 10, 10)
ball_speed = PyGUI.Slider("Speed", ball_speed, 1, 10)
ball_direction = PyGUI.Slider("Direction", ball_direction, 0, 360)
ball_radius = PyGUI.Slider("Radius", ball_radius, 10, 100)
ball_color_r = PyGUI.Slider("Red", ball_color_r, 0, 255)
ball_color_g = PyGUI.Slider("Green", ball_color_g, 0, 255)
ball_color_b = PyGUI.Slider("Blue", ball_color_b, 0, 255)
bounce_enabled = PyGUI.Checkbox("Bounce", bounce_enabled)
if PyGUI.Button("Reset Position"):
ball.pos = [WIDTH // 2, HEIGHT // 2]
PyGUI.End()
# Update the ball parameters.
ball.speed = ball_speed
ball.direction = ball_direction
ball.radius = int(ball_radius)
ball.color = (int(ball_color_r), int(ball_color_g), int(ball_color_b))
ball.draw(screen)
pygame.display.flip()
clock.tick(60)
if __name__ == "__main__":
main()