Skip to content

Instantly share code, notes, and snippets.

@f0ursqu4r3
Last active June 21, 2022 03:32
Show Gist options
  • Save f0ursqu4r3/454d7cc56741fde4a2c9917ada0b8b4f to your computer and use it in GitHub Desktop.
Save f0ursqu4r3/454d7cc56741fde4a2c9917ada0b8b4f to your computer and use it in GitHub Desktop.
A starter template for pygame in python
import pygame
from pygame import Vector2
pygame.init()
class Game:
def __init__(self):
self.window_size = Vector2(512)
self.window = pygame.display.set_mode(self.window_size)
pygame.display.set_caption('playground')
self.screen_scale = 3
self.bg_clear = pygame.Surface(self.window_size)
self.bg_clear.fill((60, 50, 60))
self.clock = pygame.time.Clock()
self.running = False
@property
def screen_size(self):
return Vector2(self.window_size/self.screen_scale)
def run(self):
self.running = True
while self.running:
self.process_events()
self.update()
self.draw()
def process_events(self):
for event in pygame.event.get():
if (event.type == pygame.QUIT or
(event.type == pygame.KEYDOWN and
event.key == pygame.K_ESCAPE)):
self.running = False
# react to events here
def update(self):
pygame.display.set_caption(
f'playground - {int(self.clock.get_fps())}fps')
dt = self.clock.tick(120)*.001
# do updates here
def draw(self):
self.window.blit(self.bg_clear, Vector2())
screen = pygame.Surface(self.screen_size, pygame.SRCALPHA)
# draw/blit to `screen` here
self.window.blit(pygame.transform.scale(
screen, self.window_size), Vector2())
pygame.display.flip()
if __name__ == '__main__':
Game().run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment