Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pygame
- import os, sys
- from pygame.locals import *
- if not pygame.font: print "Warning, fonts disabled!"
- if not pygame.mixer: print "Warning, sounds disabled!"
- def load_image(name, colorkey=None):
- fullname = os.path.join('data', name)
- try:
- image = pygame.image.load(fullname)
- except pygame.error, message:
- print "Can't load image: %s" % name
- raise SystemExit, message
- image = image.convert()
- if colorkey is not None:
- if colorkey is -1:
- colorkey = image.get_at((0,0))
- image.set_colorkey(colorkey, RLEACCEL)
- return image, image.get_rect()
- class Fist(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- self.image, self.rect = load_image('sprites.png', -1)
- self.punching = 0
- def update(self):
- pos = pygame.mouse.get_pos()
- self.rect.mid_top = pos
- if self.punching:
- self.rect.move_ip(5,10)
- def punch(self, target):
- if not self.punching:
- self.punching = 1
- hitbox = self.rect.inflate(-5,-5)
- return hitbox.colliderect(target.rect)
- def unpunch(self):
- self.punching = 0
- class Chimp(pygame.sprite.Sprite):
- def __init__(self):
- pygame.sprite.Sprite.__init__(self)
- self.image, self.rect = load_image('tiles.png', -1)
- screen = pygame.display.get_surface()
- self.area = screen.get_rect()
- self.rect.topleft = 10, 10
- self.move = 9
- self.dizzy = 0
- def update(self):
- if self.dizzy:
- self._spin()
- else:
- self._walk()
- def _walk(self):
- newpos = self.rect.move((self.move, 0))
- if not self.area.contains(newpos):
- if self.rect.left < self.area.left or \
- self.rect.right > self.area.right:
- self.move = -self.move
- newpos = self.rect.move((self.move,0))
- self.image = pygame.transform.flip(self.image, 1,0)
- self.rect = newpos
- def _spin(self):
- center = self.rect.center
- self.dizzy += 12
- if self.dizzy >= 360:
- self.dizzy = 0
- self.image = self.original
- else:
- rotate = pygame.transform.rotate
- self.image = rotate(self.original, self.dizzy)
- self.rect = self.image.get_rect(center=center)
- def punched(self):
- if not self.dizzy:
- self.dizzy = 1
- self.original = self.image
- if __name__ == '__main__':
- pygame.init()
- screen = pygame.display.set_mode((468,60))
- pygame.display.set_caption('TEST!')
- pygame.mouse.set_visible(0)
- background = pygame.Surface(screen.get_size())
- background = background.convert()
- background.fill((250,250,250))
- if pygame.font:
- font=pygame.font.Font(None, 36)
- text = font.render("Thijs pwnt", 1, (10,10,10))
- textpos = text.get_rect(centerx=background.get_width()/2)
- background.blit(text, textpos)
- screen.blit(background, (0,0))
- pygame.display.flip()
- fist = Fist
- chimp = Chimp
- allsprites = pygame.sprite.RenderPlain((fist, chimp))
- clock = pygame.time.Clock()
- def _run():
- print 'IN run!'
- while 1:
- clock.tick(60)
- for event in pygame.event.get():
- if event.type == QUIT:
- print 'QUIT SIGNAL'
- return
- elif event.type == KEYDOWN and event.key == K_ESCAPE:
- print 'ESCAPE SIGNAL'
- return
- elif event.type == MOUSEBUTTONDOWN:
- if fist.punch(chimp):
- print "PUNCHED!"
- chimp.punched()
- else:
- print "MISSED!"
- elif event.type == MOUSEBUTTONUP:
- fist.unpunch()
- print 'Going to run!'
- run()
Add Comment
Please, Sign In to add comment