Skip to content

Instantly share code, notes, and snippets.

@mouseroot
Created August 23, 2012 02:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mouseroot/3431528 to your computer and use it in GitHub Desktop.
Save mouseroot/3431528 to your computer and use it in GitHub Desktop.
pygame class
import pygame
from pygame.locals import *
class Game:
def __init__(self):
pygame.init()
self.screen = pygame.display.set_mode((640,480))
self.running = 1
self.clock = pygame.time.Clock()
self.rect = pygame.Rect(0,0,640,480)
def reDraw(self):
pygame.display.flip()
def tick(self,fps):
self.clock.tick(fps)
class Player:
def __init__(self,n):
self.name = n
self.x = 0
self.y = 0
self.vx = 0
self.vy = 0
self.speed = 1
self.image = None
self.rect = None
def getInput(self,inp):
if inp.type == KEYDOWN and inp.key == K_DOWN:
self.mvDown()
elif inp.type == KEYUP and inp.key == K_DOWN:
self.stopVertical()
elif inp.type == KEYDOWN and inp.key == K_UP:
self.mvUp()
elif inp.type == KEYUP and inp.key == K_UP:
self.stopVertical()
elif inp.type == KEYDOWN and inp.key == K_RIGHT:
self.mvRight()
elif inp.type == KEYUP and inp.key == K_RIGHT:
self.stopHoriz()
elif inp.type == KEYDOWN and inp.key == K_LEFT:
self.mvLeft()
elif inp.type == KEYUP and inp.key == K_LEFT:
self.stopHoriz()
def setImage(self,i):
self.image = pygame.image.load(i)
self.rect = self.image.get_rect()
def mvUp(self):
self.vy -= self.speed
def mvDown(self):
self.vy += self.speed
def mvLeft(self):
self.vx -= self.speed
def mvRight(self):
self.vx += self.speed
def stopVertical(self):
self.vy = 0
def stopHoriz(self):
self.vx = 0
def Move(self):
self.x += self.vx
self.y += self.vy
self.rect = pygame.Rect(self.x,self.y,self.image.get_width(),self.image.get_height())
def Draw(self,scr):
scr.blit(self.image,(self.x,self.y))
game = Game()
player = Player("Player")
player.setImage("player_image.bmp")
while game.running == 1:
for x in pygame.event.get():
player.getInput(x)
if x.type == QUIT:
game.running = 0
pygame.quit()
game.tick(90)
game.screen.fill((0,0,0))
player.Move()
player.Draw(g.screen)
game.reDraw()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment