Skip to content

Instantly share code, notes, and snippets.

@iminurnamez
Created February 3, 2016 20:30
Show Gist options
  • Save iminurnamez/50b756b58e0c39df2842 to your computer and use it in GitHub Desktop.
Save iminurnamez/50b756b58e0c39df2842 to your computer and use it in GitHub Desktop.
import pygame as pg
class Square(object):
def __init__(self, center_point, size):
self.image = pg.Surface(size)
self.image.fill(pg.Color("dodgerblue"))
self.rect = self.image.get_rect(center=center_point)
self.pos = self.rect.center
self.x_velocity = 0
def update(self, dt, keys):
self.x_velocity = 0
if keys[pg.K_LEFT]:
self.x_velocity = -.1
elif keys[pg.K_RIGHT]:
self.x_velocity = .1
self.pos = self.pos[0] + (self.x_velocity * dt), self.pos[1]
self.rect.center = self.pos
def draw(self, surface):
surface.blit(self.image, self.rect)
class App(object):
def __init__(self):
self.screen = pg.display.set_mode((1280, 720))
self.clock = pg.time.Clock()
self.fps = 60
self.done = False
self.square = Square((640, 360), (100, 100))
self.caption = "FPS: {:8} CLOCKED_FPS: {}"
def event_loop(self, dt):
for event in pg.event.get():
if event.type == pg.QUIT:
self.done = True
def update(self, dt):
keys = pg.key.get_pressed()
if keys[pg.K_UP]:
self.fps += 1
elif keys[pg.K_DOWN]:
self.fps = max(10, self.fps - 1)
self.square.update(dt, keys)
def draw(self):
self.screen.fill(pg.Color("gray5"))
self.square.draw(self.screen)
def run(self):
while not self.done:
dt = self.clock.tick(self.fps)
self.event_loop(dt)
self.update(dt)
self.draw()
caption = self.caption.format(self.fps, self.clock.get_fps())
pg.display.set_caption(caption)
pg.display.update()
if __name__ == "__main__":
app = App()
app.run()
pg.quit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment