import pygame import random def play(model,draw, step, events, width=1280, height=720,background='Black',fps=60): pygame.init() screen = pygame.display.set_mode((width, height)) clock = pygame.time.Clock() running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False model = events(model) screen.fill(background) draw(screen,model) pygame.display.flip() model=step(model) clock.tick(fps) / 1000 pygame.quit() def ball(): play( (0.0,0.4,0),drawBall,stepBall, keyBall,500,800,'black',33) def drawBall(screen,model): pygame.draw.circle(screen, "red", pygame.Vector2(245,model[0]), 10) def keyBall(model): (h,v,t) = model keys = pygame.key.get_pressed() if keys[pygame.K_r]: return (10,-v*0.8,0) else: return model def stepBall(model): (h,v0,t) = model v = v0 + 0.981 * t return (h-10,-v*0.8,0) if h>795 else (h+v,v0,t+1) ball()