You have to have your images in the same folder as your script. Are they? For example if you copied to the desktop it wouldn't work
-Zack On Mar 11, 2012, at 12:51 PM, Avirup Kundu <avirupku...@gmail.com> wrote: > import pygame, os.path, sys > from pygame.locals import * > from random import randint > > def load_image(name, colorkey=None): > try: > image = pygame.image.load(name) > except pygame.error: > print ('Cannot load image:', name) > raise SystemExit(str(geterror())) > 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 > > class IMG: > pass > > class NPC: > #A container class for the NPCs > def __init__(self, image): > self.image = image > self.pos = > [(38,38),(119,63),(181,21),(35,189),(119,157),(169,219),(15,323),(95,303),(183,319)] > > def update(self): > pass > > def draw(self, screen, k): > self.rect = self.pos[k] > screen.blit(self.image, self.rect) > > class Mice(NPC): > #The bad guy! > def __init__(self): > NPC.__init__(self, IMG.MICE) > > class Dog(NPC): > #The pet dog! > def __init__(self): > NPC.__init__(self, IMG.DOG) > > class Cat(NPC): > #The neighbour's cat! > def __init__(self): > NPC.__init__(self, IMG.CAT) > > > def main(): > pygame.init() > screen = pygame.display.set_mode((240,380)) > pygame.display.set_caption("Hit The Mice!") > > background = load_image('ground.jpg') > screen.blit(background, (0,0)) > pygame.display.flip() > > flag = False > score = 0 > allowed_time = 600 #change this variable to control the speed of the > game. In miliseconds. > time_to_run = 200 #change this variable to play longer. > hit = False > life = 3 > score = 0 > time_elapsed = 0 > > IMG.MICE = load_image('mice.png', -1) > IMG.MICE=pygame.transform.scale(IMG.MICE, (50,50)) > IMG.DOG = load_image('dog.png', -1) > IMG.DOG=pygame.transform.scale(IMG.DOG, (50,50)) > IMG.CAT = load_image('cat.png', -1) > IMG.CAT=pygame.transform.scale(IMG.CAT, (50,50)) > > actors = [Mice(), Mice(), Mice(), Mice(), Dog(), Cat()] > > while True: > screen.blit(background, (0,0)) > r = randint(0,5) > k = randint(0,8) > actors[r].draw(screen,k) > pygame.display.update() > > time = pygame.time.Clock() > time_passed = 0 > > while True: > time_passed = time.tick()+time_passed > time_elapsed = time.tick()+time_elapsed > if time_passed > allowed_time: > break > > for event in pygame.event.get(): > if event.type == QUIT: > sys.exit() > if event.type == KEYDOWN: > if event.key == K_ESCAPE: > flag = True > break > > pressed_key = pygame.key.get_pressed() > > if pressed_key[K_q] and k==0: > hit = True > break > if pressed_key[K_w] and k==1: > hit = True > break > if pressed_key[K_e] and k==2: > hit = True > break > if pressed_key[K_a] and k==3: > hit = True > break > if pressed_key[K_s] and k==4: > hit = True > break > if pressed_key[K_d] and k==5: > hit = True > break > if pressed_key[K_z] and k==6: > hit = True > break > if pressed_key[K_x] and k==7: > hit = True > break > if pressed_key[K_c] and k==8: > hit = True > break > if life < 0: > break > if flag is True: > break > if hit is True: > if r==4 or r==5: > life = life-1 > else: > score = score+1 > print(score) > > if time_elapsed > time_to_run: > break > hit = False > > background = pygame.Surface(screen.get_size()).convert() > background.fill((255,255,0)) > score = str(score) > score = "Your score is "+ score > print(score) > while True: > > for event in pygame.event.get(): > if event.type == QUIT: > sys.exit() > if event.type == KEYDOWN: > if event.key == K_ESCAPE: > sys.exit() > > screen.blit(background, (0,0)) > my_font = pygame.font.SysFont("arial", 28) > score_surface = my_font.render(score, True, (0,0,0)) > screen.blit(score_surface, (34, 24)) > > my_font_1 = pygame.font.SysFont("arial", 16) > quit_surface = my_font_1.render("Press esc to Quit", True, (0,0,0)) > screen.blit(quit_surface, (64, 300)) > pygame.display.flip() > > > if __name__ == '__main__':main() > > > >