This week only. Pastebin PRO Accounts Christmas Special! Don't miss out!Want more features on Pastebin? Sign Up, it's FREE!
Guest

kittybullets.py

By: a guest on Mar 5th, 2014  |  syntax: Python  |  size: 4.28 KB  |  views: 101  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. import pygame
  2. import random
  3. from pygame.locals import *
  4.  
  5. class KittySprite(pygame.sprite.DirtySprite):
  6.        
  7.         def __init__(self, image_name):
  8.                 super(KittySprite, self).__init__()
  9.                 self.image = pygame.image.load(image_name)
  10.                 self.rect = self.image.get_rect()
  11.                 self.dirty = 1
  12.                 self.rect.topleft = (0, 0)
  13.  
  14.         def update(self):
  15.                 self.dirty = 1
  16.  
  17.         def move_to(self, pos):
  18.                 self.rect.center = posimport pygame
  19. import random
  20. from pygame.locals import *
  21.  
  22. class KittySprite(pygame.sprite.DirtySprite):
  23.        
  24.         def __init__(self, image_name):
  25.                 super(KittySprite, self).__init__()
  26.                 self.image = pygame.image.load(image_name)
  27.                 self.rect = self.image.get_rect()
  28.                 self.dirty = 1
  29.                 self.rect.topleft = (0, 0)
  30.  
  31.         def update(self):
  32.                 self.dirty = 1
  33.  
  34.         def move_to(self, pos):
  35.                 self.rect.center = pos
  36.                 self.dirty = 1
  37.  
  38.  
  39. class BulletSprite(pygame.sprite.DirtySprite):
  40.  
  41.         def __init__(self, start, speed):
  42.                 super(BulletSprite, self).__init__()
  43.                 self.image = pygame.Surface((8, 30))
  44.                 self.rect = self.image.get_rect()
  45.                 self.dirty = 1
  46.                 self.rect.center = start
  47.                 self.speed = speed
  48.                 self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
  49.                 self.image.fill(self.color)
  50.                 self.framescolored = 0
  51.  
  52.         def update(self):
  53.                 self.rect.y -= self.speed
  54.                 if self.rect.top < 0:
  55.                         self.kill()
  56.                 if self.framescolored < 10:
  57.                         self.image.fill(self.color)
  58.                 else:
  59.                         self.image.fill((0, 0, 0))
  60.                         self.framescolored = 0
  61.                 self.framescolored += 1
  62.  
  63. def run_game(surf, sprite_group, bullets, kitty_sprite, clock):
  64.         while True:
  65.                 events(sprite_group, kitty_sprite, bullets)
  66.                 update(sprite_group, bullets)
  67.                 render(surf, sprite_group, bullets)
  68.                 clock.tick(30)
  69.  
  70. pygame.init()
  71.  
  72. clock = pygame.time.Clock()
  73.  
  74. pygame.mouse.set_visible(False)
  75.  
  76. window_surface = pygame.display.set_mode((640, 480))
  77. spr_group = pygame.sprite.GroupSingle()
  78. kitty = KittySprite('kitten.png')
  79. spr_group.add(kitty)
  80. bullets = pygame.sprite.RenderUpdates()
  81.  
  82. def events(sprite_group, kitty_sprite, bullets):
  83.         for event in pygame.event.get():
  84.                 if event.type == QUIT:
  85.                         pygame.quit()
  86.                 elif event.type == MOUSEMOTION:
  87.                         kitty_sprite.move_to(event.pos)
  88.                 elif event.type == MOUSEBUTTONUP:
  89.                         bull = BulletSprite(kitty_sprite.rect.center, 10)
  90.                         bullets.add(bull)
  91.  
  92. def update(sprite_group, bullets):
  93.         sprite_group.update()
  94.         bullets.update()
  95.  
  96. def render(surf, sprite_group, bullets):
  97.         surf.fill((255, 255, 255))
  98.         sprite_group.draw(surf)
  99.         bullets.draw(surf)
  100.         pygame.display.flip()
  101.  
  102. run_game(window_surface, spr_group, bullets, kitty, clock)
  103.                 self.dirty = 1
  104.  
  105.  
  106. class BulletSprite(pygame.sprite.DirtySprite):
  107.  
  108.         def __init__(self, start, speed):
  109.                 super(BulletSprite, self).__init__()
  110.                 self.image = pygame.Surface((8, 30))
  111.                 self.rect = self.image.get_rect()
  112.                 self.dirty = 1
  113.                 self.rect.center = start
  114.                 self.speed = speed
  115.                 self.color = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
  116.                 self.image.fill(self.color)
  117.                 self.framescolored = 0
  118.  
  119.         def update(self):
  120.                 self.rect.y -= self.speed
  121.                 if self.rect.top < 0:
  122.                         self.kill()
  123.                 if self.framescolored < 10:
  124.                         self.image.fill(self.color)
  125.                 else:
  126.                         self.image.fill((0, 0, 0))
  127.                         self.framescolored = 0
  128.                 self.framescolored += 1
  129.  
  130. def run_game(surf, sprite_group, bullets, kitty_sprite, clock):
  131.         while True:
  132.                 events(sprite_group, kitty_sprite, bullets)
  133.                 update(sprite_group, bullets)
  134.                 render(surf, sprite_group, bullets)
  135.                 clock.tick(30)
  136.  
  137. pygame.init()
  138.  
  139. clock = pygame.time.Clock()
  140.  
  141. pygame.mouse.set_visible(False)
  142.  
  143. window_surface = pygame.display.set_mode((640, 480))
  144. spr_group = pygame.sprite.GroupSingle()
  145. kitty = KittySprite('kitten.png')
  146. spr_group.add(kitty)
  147. bullets = pygame.sprite.RenderUpdates()
  148.  
  149. def events(sprite_group, kitty_sprite, bullets):
  150.         for event in pygame.event.get():
  151.                 if event.type == QUIT:
  152.                         pygame.quit()
  153.                 elif event.type == MOUSEMOTION:
  154.                         kitty_sprite.move_to(event.pos)
  155.                 elif event.type == MOUSEBUTTONUP:
  156.                         bull = BulletSprite(kitty_sprite.rect.center, 10)
  157.                         bullets.add(bull)
  158.  
  159. def update(sprite_group, bullets):
  160.         sprite_group.update()
  161.         bullets.update()
  162.  
  163. def render(surf, sprite_group, bullets):
  164.         surf.fill((255, 255, 255))
  165.         sprite_group.draw(surf)
  166.         bullets.draw(surf)
  167.         pygame.display.flip()
  168.  
  169. run_game(window_surface, spr_group, bullets, kitty, clock)
clone this paste RAW Paste Data