Advertisement
Guest User

kittybullets.py

a guest
Mar 5th, 2014
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.28 KB | None | 0 0
  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)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement