Пример #1
0
def congrats(screen, gs):
    _starfield = pygame.transform.scale(load(filepath('starfield.png')),
                                        (settings.DISPLAY_SIZE)).convert()
    screen.blit(_starfield, (0, 0))

    font = pygame.font.Font(filepath('amiga4ever.ttf'), 16)
    msg = font.render('CONGRATULATIONS', 
                      False, settings.HUD_TEXT)
    msg2 = font.render('You succeeded where thousands', 
                      False, settings.HUD_TEXT)
    msg2a = font.render('before you failed', 
                      False, settings.HUD_TEXT)
    msg3 = font.render('Press R to restart or Q to quit', 
                      False, settings.HUD_TEXT)
    screen.blit(msg, (50, 100))
    screen.blit(msg2, (50, 150))
    screen.blit(msg2a, (50, 180))
    screen.blit(msg3, (50, 250))
    pygame.display.flip()

    while 1:
        for event in pygame.event.get():
            if event.type == pygame.QUIT: sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == QUIT: sys.exit()
                if event.key == pygame.K_q: sys.exit()
                if event.key == pygame.K_r:
                    # restart the game.
                    return True
Пример #2
0
    def __init__(self):

        self.smash1 = pygame.mixer.Sound(data.filepath('smash1.ogg', 'sfx'))
        self.smash1played = False
        self.smash2 = pygame.mixer.Sound(data.filepath('smash2.ogg', 'sfx'))
        self.smash2played = False
        self.boing = pygame.mixer.Sound(data.filepath('jump.ogg', 'sfx'))
        self.numboings = 0
        self.boingsplayed = 0

        self.menaceloc = (275, 100)
        self.menacerot = False
        self.fluffyloc = (245, 100)
        self.bunnyloc = (160, 240)
        self.creditsalpha = 0
        self.alldone = False
        self.fadeincredits = False
        self.fadeouttime = False
        self.running = 0

        texture = textures.Texture(data.filepath('logo.png'))
        self.menace = texture.sub(214, 128 - 56, 512 - 214, 56)
        self.fluffy = texture.sub(77, 128 - 80, 202 - 77, 80 - 24)
        self.credits1 = texture.sub(60, 0, 238 - 60, 28)
        self.credits2 = texture.sub(238, 0, 512 - 238, 128 - 68)
        self.bunny = texture.sub(0, 128 - 95, 48, 95)
Пример #3
0
    def __init__(self):
        self.screen_rect = states.TheStateManager.screen.get_rect()
        self.img = gradients.vertical(self.screen_rect.size, (0, 255, 255, 255), (80, 100, 135, 255))

        # Sun
        sunimg = pygame.transform.scale2x(pygame.image.load(data.filepath('sun.png'))).convert_alpha()
        self.sun = self.spr = animation.FrameAnimation((0, 0), sunimg)
        self.sun_radius = self.screen_rect.h * 0.8

        # Moon
        moonimg = pygame.image.load(data.filepath('moon.png')).convert_alpha()
        self.moon =  animation.FrameAnimation((0, 0), moonimg)
        self.moon_radius = self.screen_rect.h * 0.8

        # Generate starfield
        self.stars = pygame.Surface(self.screen_rect.size).convert()
        self.stars.fill((0, 255, 0))
        self.stars.set_alpha(None)
        self.stars.set_colorkey((0, 255, 0))
        self.stars.lock()
        for i in range(80):
            x = randint(0, self.screen_rect.width)
            y = randint(0, self.screen_rect.height)
            self.stars.set_at((x,y), (255,255,255))
        self.stars.unlock()

        self.night = pygame.Surface(self.screen_rect.size).convert()
        self.night.fill((0, 0, 0))
        self.night.set_alpha(None)
        self.night.set_colorkey(None)
        self.night.set_alpha(0)


        self.math_time = -0.25
Пример #4
0
    def __init__(self, screen=None, my_timer=None, prev_vid=None):
        """Set everything up.

        If you have an existing vid, you can pass that instead of
        passing screen and my_timer.

        """
        if prev_vid is not None:
            if screen is None:
                screen = prev_vid.screen
            if my_timer is None:
                my_timer = prev_vid.timer
        tilevid.Tilevid.__init__(self)
        self.screen = screen
        self.timer = my_timer
        self.view.w, self.view.h = SCREEN_WIDTH, SCREEN_HEIGHT
        self.frame = 0
        self.tga_load_tiles(filepath(self.tiles_file),
                            (TILE_WIDTH, TILE_HEIGHT),
                            self.tile_data)
        self.tga_load_level(filepath(self.level_file), bg=True)
        self.bounds = pygame.Rect(TILE_WIDTH, TILE_HEIGHT,
                                  (len(self.tlayer[0]) - 2) * TILE_WIDTH,
                                  (len(self.tlayer) - 2) * TILE_HEIGHT)
        self.load_images(self.image_data)
        self.font = pygame.font.SysFont('helvetica', 16)
        self.next_vid = None
Пример #5
0
 def load_fonts(self):
     """Load ALL of the fonts usedin the game."""
     self.levelfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 20)
     self.destfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 20)
     self.barfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 16)
     self.menufont = pygame.font.Font(data.filepath('chalkdust.ttf'), 64)
     self.helpfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 32)
Пример #6
0
def MTL(filename):
    contents = {}
    mtl = None
    for line in open(data.filepath(filename), "r"):
        if line.startswith('#'): continue
        values = line.split()
        if not values: continue
        if values[0] == 'newmtl':
            mtl = contents[values[1]] = {}
        elif mtl is None:
            raise ValueError, "mtl file doesn't start with newmtl stmt"
        elif values[0] == 'map_Kd':
            # load the texture referred to by this declaration
            mtl[values[0]] = values[1]
            surf = pygame.image.load(data.filepath(mtl['map_Kd']))
            image = pygame.image.tostring(surf, 'RGBA', 1)
            ix, iy = surf.get_rect().size
            texid = mtl['texture_Kd'] = glGenTextures(1)
            glBindTexture(GL_TEXTURE_2D, texid)
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR)
            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR)
            glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, ix, iy, 0, GL_RGBA,
                         GL_UNSIGNED_BYTE, image)
        else:
            mtl[values[0]] = map(float, values[1:])
    return contents
Пример #7
0
    def __init__(self):
        self.screen_rect = states.TheStateManager.screen.get_rect()
        self.img = gradients.vertical(self.screen_rect.size,
                                      (0, 255, 255, 255), (80, 100, 135, 255))

        # Sun
        sunimg = pygame.transform.scale2x(
            pygame.image.load(data.filepath('sun.png'))).convert_alpha()
        self.sun = self.spr = animation.FrameAnimation((0, 0), sunimg)
        self.sun_radius = self.screen_rect.h * 0.8

        # Moon
        moonimg = pygame.image.load(data.filepath('moon.png')).convert_alpha()
        self.moon = animation.FrameAnimation((0, 0), moonimg)
        self.moon_radius = self.screen_rect.h * 0.8

        # Generate starfield
        self.stars = pygame.Surface(self.screen_rect.size).convert()
        self.stars.fill((0, 255, 0))
        self.stars.set_alpha(None)
        self.stars.set_colorkey((0, 255, 0))
        self.stars.lock()
        for i in range(80):
            x = randint(0, self.screen_rect.width)
            y = randint(0, self.screen_rect.height)
            self.stars.set_at((x, y), (255, 255, 255))
        self.stars.unlock()

        self.night = pygame.Surface(self.screen_rect.size).convert()
        self.night.fill((0, 0, 0))
        self.night.set_alpha(None)
        self.night.set_colorkey(None)
        self.night.set_alpha(0)

        self.math_time = -0.25
Пример #8
0
 def __init__(self, game):
     """
     Initializes the player ship parameters.
     """
     pygame.sprite.Sprite.__init__(self)
     
     self.game = game
     
     self.unmasked_image, self.rect = utilities.load_image(data.filepath(settings.UNMASKED_BG_IMAGE_PATH))
     self.masked_image, _= utilities.load_image(data.filepath(settings.MASKED_BG_IMAGE_PATH))
     
     self.image = self.masked_image.copy()
     self.image.set_colorkey((255, 255,0))
     
     self.last_brighten = (0, 0)
     
     #Load music and ambient sound:
     self.tracks = []
     self.cur_track = 0
     for track in settings.MUSIC_TRACKS:
         sound = pygame.mixer.Sound(data.filepath(track))
         self.tracks.append(sound)
         
     self.start_music()
     
     self.ambient_sounds = []
     for i in settings.AMBIENT_SOUNDS:
         self.ambient_sounds.append(pygame.mixer.Sound(data.filepath(i)))
     #Schedule an ambient event about every two minutes:
     pygame.time.set_timer(settings.SCHEDULE_AMBIENT_EVENT, 2 * 60 * 1000)
Пример #9
0
    def __init__(self, window, name, duration, background):
        self.Window = window
        self.Background = pyglet.resource.image(background)
        self.Name = name
        self.Duration = self.TimeLeft = duration
        self.Won = False
        self.Instruction = None

        self.Teeter = teeter.Teeter()
        self.Pipe = pipe.Pipe()
        self.ObjectQueue = []
        self.CurrentObjects = []
        self.FallPlayer = pyglet.media.load(data.filepath("sound/fall1.wav"), streaming=False)
        self.BabyPlayer = pyglet.media.load(data.filepath("sound/baby2.wav"), streaming=False)
        self.LandPlayer = pyglet.media.load(data.filepath("sound/land1.wav"), streaming=False)

        # self.NextObjectInQueue and self.NullObject are used to figure out the end of
        # the "next item" list and remember the position.
        self.NextObjectInQueue = fallingobjects.NullItem()
        self.NextObjectInQueue.position = (constants.RESOLUTION[0] - 75, 150)
        self.NullObject = self.NextObjectInQueue

        self.NextLabel = pyglet.text.Label("Next Item", font_size=24, bold=True, x=constants.RESOLUTION[0] - 155, y=200)

        self.Subscriptions = ((self.onkeypress, "keypress"),)
        self.subscribe()
Пример #10
0
    def __init__(self, screen=None, my_timer=None, prev_vid=None):
        """Set everything up.

        If you have an existing vid, you can pass that instead of
        passing screen and my_timer.

        """
        if prev_vid is not None:
            if screen is None:
                screen = prev_vid.screen
            if my_timer is None:
                my_timer = prev_vid.timer
        tilevid.Tilevid.__init__(self)
        self.screen = screen
        self.timer = my_timer
        self.view.w, self.view.h = SCREEN_WIDTH, SCREEN_HEIGHT
        self.frame = 0
        self.tga_load_tiles(filepath(self.tiles_file),
                            (TILE_WIDTH, TILE_HEIGHT), self.tile_data)
        self.tga_load_level(filepath(self.level_file), bg=True)
        self.bounds = pygame.Rect(TILE_WIDTH, TILE_HEIGHT,
                                  (len(self.tlayer[0]) - 2) * TILE_WIDTH,
                                  (len(self.tlayer) - 2) * TILE_HEIGHT)
        self.load_images(self.image_data)
        self.font = pygame.font.SysFont('helvetica', 16)
        self.next_vid = None
Пример #11
0
    def __init__(self, screen):
        self.screen = screen

        self.bg = data.load_image("menu4.png")
        self.font = pygame.font.Font(data.filepath("fonts/font.ttf"), 16)
        self.font2 = pygame.font.Font(
            data.filepath("fonts/super-mario-64.ttf"), 45)

        self.clock = pygame.time.Clock()

        self.ip_input = inputbox.InputArea(self.screen,
                                           self.screen.get_width() / 2 - 125,
                                           self.screen.get_height() / 2 - 125,
                                           250,
                                           25,
                                           nature="Host IP")
        self.name_input = inputbox.InputArea(self.screen,
                                             self.screen.get_width() / 2 - 125,
                                             self.screen.get_height() / 2 - 75,
                                             250,
                                             25,
                                             nature="Name")
        self.focused_input = None
        self.set_focused_input(self.ip_input)

        self.connected = False

        self.ready = False

        self.name = ""
        self.mode = None
        self.level_name = ""
Пример #12
0
    def __init__(self): 
    
        self.smash1 = pygame.mixer.Sound(data.filepath('smash1.ogg', 'sfx'))
        self.smash1played = False
        self.smash2 = pygame.mixer.Sound(data.filepath('smash2.ogg', 'sfx'))
        self.smash2played = False
        self.boing = pygame.mixer.Sound(data.filepath('jump.ogg', 'sfx'))
        self.numboings = 0
        self.boingsplayed = 0
    
        self.menaceloc = (275, 100)
        self.menacerot = False
        self.fluffyloc = (245, 100)
        self.bunnyloc = (160, 240)
        self.creditsalpha = 0
        self.alldone = False
        self.fadeincredits = False
        self.fadeouttime = False
        self.running = 0

        texture = textures.Texture(data.filepath('logo.png'))
        self.menace = texture.sub(214, 128-56, 512-214, 56)
        self.fluffy = texture.sub(77, 128-80, 202-77, 80-24)
        self.credits1 = texture.sub(60, 0, 238-60, 28)
        self.credits2 = texture.sub(238, 0, 512-238, 128-68)
        self.bunny = texture.sub(0, 128-95, 48, 95)
Пример #13
0
	def __init__(self):
		self.__dict__ = self.__shared_state
		
		try:
			self.bInit
		except:
			self.bInit = True
			if pygame.mixer.get_init():
				self.mixerAvailable = True		
				
				pygame.mixer.music.load(filepath("tradeyourkid.ogg"))
				pygame.mixer.music.set_volume(0.5)		
				
				try:
					f = open(filepath("sound.cfg"), "r")
					self.bSound = int(f.readline().rstrip("\n"))
					self.bMusic = int(f.readline().rstrip("\n"))
					f.close()
				except IOError:
					self.bSound = 1
					self.bMusic = 1
				
				self.beepSound = pygame.mixer.Sound(filepath("Electron-wwwbeat-1897.wav"))
				self.levelEndSound = pygame.mixer.Sound(filepath("Arcade_S-wwwbeat-1889.wav"))
				self.levelEndSound.set_volume(0.4)
				self.blackHoleSound = pygame.mixer.Sound(filepath("delay_me-dog-298.wav"))
				self.whiteHoleSound = pygame.mixer.Sound(filepath("pop-SodaBush-1015.wav"))
				self.endSound = pygame.mixer.Sound(filepath("Applause-J_Fairba-1717.wav"))
				
				self.thudSounds = [pygame.mixer.Sound(filepath("thud.ogg")),
								   pygame.mixer.Sound(filepath("thud2.ogg")),
							       pygame.mixer.Sound(filepath("thud3.ogg"))]				
				
			else:
				self.mixerAvailable = False
Пример #14
0
def main():
    pygame.init()
    screen = pygame.display.set_mode((SCREEN_W, SCREEN_H),
                            pygame.HWSURFACE|pygame.FULLSCREEN)
    while True:
        m = Menu(screen).play()
        if m == 'above':
            pygame.mixer.music.load(data.filepath('sounds', 'above4.wav'))
            pygame.mixer.music.set_volume(.3)
            pygame.mixer.music.play(-1)
            g = Game(screen, 4, 1)
            win_lose = g.run()
            pygame.mixer.music.stop()
            if win_lose != None:
                Ending(screen, win_lose).play()
        elif m  == 'below':
            pygame.mixer.music.load(data.filepath('sounds', 'below0.wav'))
            pygame.mixer.music.set_volume(.3)
            pygame.mixer.music.play(-1)
            g = Game(screen)
            win_lose = g.run()
            pygame.mixer.music.stop()
            if win_lose != None:
                Ending(screen, win_lose).play()
        elif m == 'help':
            Help(screen).play()
        elif m == 'exit':
            return
Пример #15
0
 def above_world(self):
     if self.player.rect.centery > SCREEN_H:
         if self.level == 0 and self.flipped == False:
             for sound in self.sound_list:
                 sound.stop()
             pygame.mixer.music.stop()
             pygame.mixer.music.load(data.filepath('sounds', 'below0.wav'))
             pygame.mixer.music.set_volume(.3)
             pygame.mixer.music.play(-1)
             self.flipped = True
             self.world = 0
             self.player.rect.centery = 0
             self.player.dy = -self.player.dy
         elif self.level == 0:
             for sound in self.sound_list:
                 sound.stop()
             if self.player.points == 24:
                 self.player.ticktock.stop()
                 return 'prize'
             else:
                 return 'win'
         else:
             self.level -= 1
             self.player.rect.centery = 0
             s = pygame.mixer.Sound(
                 data.filepath('sounds',
                               'above' + str(self.level) + '.wav'))
             s.set_volume(.3)
             s.play(-1)
             self.sound_list.append(s)
     if self.player.rect.centery < 0 and self.world == 1:
         for sound in self.sound_list:
             sound.stop()
         return 'lose'
Пример #16
0
 def load_fonts(self):
     """Load ALL of the fonts usedin the game."""
     self.levelfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 20)
     self.destfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 20)
     self.barfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 16)
     self.menufont = pygame.font.Font(data.filepath('chalkdust.ttf'), 64)
     self.helpfont = pygame.font.Font(data.filepath('chalkdust.ttf'), 32)
Пример #17
0
    def __init__(self, game):

        self.game = game

        super(Moon, self).__init__()

        # images, normal and hit state
        self.baseimage = pygame.image.load(
            data.filepath('moon.png')).convert_alpha()
        self.hitimage = pygame.image.load(
            data.filepath('moonhit.png')).convert_alpha()
        self.image = self.baseimage
        self.rect = self.image.get_rect()

        # for mask collide, again if we use it
        self.mask = pygame.mask.from_surface(self.image)

        # we update the position at the start of every level
        self.pos = (0, 0)

        # add states
        idle_state = MoonIdleState(self)
        hit_state = MoonHitState(self)
        self.brain.add_state(idle_state)
        self.brain.add_state(hit_state)
Пример #18
0
    def __init__(self, x, y, dx, dy, goo_batch):
        image = pyglet.image.load(data.filepath('goo.png'))
        self.sequence = pyglet.image.ImageGrid(image, 1, 4)

        self.splat_image = pyglet.image.load(data.filepath('splat.png'))
        self.splat_image.anchor_x = self.splat_image.width / 2

        for sequence_image in self.sequence:
            sequence_image.anchor_x = sequence_image.width / 2
            sequence_image.anchor_y = sequence_image.height / 2

        Sprite.__init__(self, image, batch=goo_batch)
        self.x = self.xpos = x
        self.y = self.ypos = y

        self.speedx = dx
        self.speedy = dy

        self.animation_time = 0
        self.animation_frame = 0
        self.animation_speed = 0.25

        self.splat = False

        self.hitbox = (0, 0, self.splat_image.width, self.splat_image.height)
Пример #19
0
    def __init__(self, game, worldnum):
        self.game = game
        self.screen = game.screen
        self.board = game.board
        self.worldnum = worldnum

        # colors for drawing the 'portals'
        # triangle color
        self.tcol = (255, 255, 255)
        # outer and inner circle colors
        if worldnum == 2:
            self.outercol = (0, 255, 0)
            self.innercol = (0, 112, 0)
        elif worldnum == 3:
            self.outercol = (255, 39, 0)
            self.innercol = (255, 191, 0)
        elif worldnum == 4:
            self.outercol = (105, 72, 120)
            self.innercol = (231, 16, 190)
        elif worldnum == 5:
            self.outercol = (30, 40, 40)
            self.innercol = (136, 137, 143)
        else:
            # default and level 1 colors
            self.outercol = (255, 0, 0)
            self.innercol = (112, 0, 0)

        # inner circle end colors
        self.endcol = (255, 255, 255)
        self.nflash = 20

        # load music for this world
        if game.soundon:
            if worldnum in [3, 4, 5]:
                pygame.mixer.music.load(data.filepath('videogame7.ogg'))
            else:
                pygame.mixer.music.load(data.filepath('space.ogg'))

        self.levelnum = 0

        # load levels for this world
        # if we are in the bonus world, load from leveldatabonus
        if self.worldnum == self.game.nworlds:
            self.alllevels = self.getbonuslevels()
            self.numlevels = len(self.alllevels)
        else:
            self.alllevels = leveldata.LEVELS[str(worldnum)]
            self.numlevels = len(self.alllevels)

        # start timer for this world
        self.timeevent = pygame.USEREVENT
        pygame.time.set_timer(self.timeevent, 1000)

        if self.worldnum == self.game.nworlds:
            self.timeleft = WORLDTIME['bonus']
        else:
            self.timeleft = WORLDTIME[str(self.worldnum)]

        # play the world!
        self.playworld()
Пример #20
0
    def __init__(self, gamestate, pos):
        '''
        :type for_maze: Maze
        '''

        self.gamestate = gamestate
        self.for_maze = gamestate.maze
        self.surface = load_sprite_surface("hero_dude.png", ega.SPRITE_COLOURS)

        self.death_snd = pygame.mixer.Sound(data.filepath("death.wav"))
        self.pickup_friend_snd = pygame.mixer.Sound(
            data.filepath("pickup_friend.wav"))

        self.x, self.y = pos
        self.vx = 0
        self.vy = 0

        self.wanted_direction = None
        self.direction = None

        # fill up history with the same pos
        self.pos_history = [(self.x, self.y)] * FOLLOW_DELAY * MAX_FOLLOWS

        self.followers = []

        self.is_dead = False
Пример #21
0
    def __init__(self,game,worldnum):
        self.game = game
        self.screen = game.screen
        self.board = game.board
        self.worldnum = worldnum

        # colors for drawing the 'portals'
        # triangle color
        self.tcol = (255,255,255)
        # outer and inner circle colors
        if worldnum == 2:
            self.outercol = (0,255,0)
            self.innercol = (0,112,0)
        elif worldnum == 3:
            self.outercol = (255,39,0)
            self.innercol = (255,191,0)            
        elif worldnum == 4:
            self.outercol = (105,72,120)
            self.innercol = (231,16,190)
        elif worldnum == 5:
            self.outercol = (30,40,40)
            self.innercol = (136,137,143)            
        else:
            # default and level 1 colors
            self.outercol = (255,0,0)
            self.innercol = (112,0,0)            
            
        # inner circle end colors
        self.endcol = (255,255,255)
        self.nflash = 20 

        # load music for this world
        if game.soundon:
            if worldnum in [3,4,5]:
                pygame.mixer.music.load(data.filepath('videogame7.ogg'))                
            else:
                pygame.mixer.music.load(data.filepath('space.ogg'))                

        self.levelnum = 0

        # load levels for this world
        # if we are in the bonus world, load from leveldatabonus
        if self.worldnum == self.game.nworlds:
            self.alllevels = self.getbonuslevels()
            self.numlevels = len(self.alllevels)
        else:
            self.alllevels = leveldata.LEVELS[str(worldnum)]
            self.numlevels = len(self.alllevels)
        
        # start timer for this world
        self.timeevent = pygame.USEREVENT
        pygame.time.set_timer(self.timeevent,1000)

        if self.worldnum == self.game.nworlds:
            self.timeleft = WORLDTIME['bonus']
        else:
            self.timeleft = WORLDTIME[str(self.worldnum)]
        
        # play the world!
        self.playworld()
Пример #22
0
 def __init__(self, screen):
     self.screen = screen
     self.image = pygame.image.load(data.filepath("top", "show_help.png"))
     self.image_pos = (SCREEN_W / 2 - self.image.get_rect().width / 2,
                       SCREEN_H / 2 - self.image.get_rect().height / 2)
     pygame.mixer.music.load(data.filepath('sounds', 'help.wav'))
     pygame.mixer.music.set_volume(.4)
     pygame.mixer.music.play(-1)
Пример #23
0
 def loadfonts(self):
     pygame.font.init()
     self.smallfont = pygame.font.Font(data.filepath('vera.ttf'),20)
     self.timerfont = pygame.font.Font(data.filepath('comicate.ttf'),40)
     self.menufont = pygame.font.Font(data.filepath('comicate.ttf'),50)
     self.worldnamefont = pygame.font.Font(data.filepath('comicate.ttf'),80)        
     self.levelnamefont = self.timerfont
     self.menufont2 = self.timerfont
Пример #24
0
 def setup_pygame(self):
     #pygame.init()
     #self.renderer.setup_pygame()
     self.clock = pygame.time.Clock()
     self.screen = pygame.display.get_surface()
     self.scr_w, self.scr_h = self.screen.get_size()
     self.menu_map = pygame.image.load(data.filepath("image/menufinal-map.png"))
     self.tutorial_map = pygame.image.load(data.filepath("image/tutorial-map.png"))
Пример #25
0
    def on_init(self, *args, **kwargs):
        # background
        self.bgd = pygame.image.load(data.filepath('lawn1.png'))
        self.lawn = LawnManager()
        global sky
        if not sky:
            sky = utility.Bgd()
        self.sky = sky

        # time
        if self.duration:
            self.end_time = states.TheStateManager.time + self.duration
        else:
            self.end_time = states.TheStateManager.time

        # gui
        self.bitmapfont = gui.BitmapFont(
            30,
            fontname=data.filepath('fonts/actionman.ttf'),
            color=(255, 255, 0))
        self._show_fps = False
        self.healbar_L = gui.HealthBar((20, 20), 0, 10 * LawnSegment.MAXHEALTH,
                                       (20, 100), (0, 200, 0))
        self.healbar_R = gui.HealthBar((800 - 40, 20), 0,
                                       10 * LawnSegment.MAXHEALTH, (20, 100),
                                       (200, 200, 0))

        font = pygame.font.Font(None, 40)
        self.welcome_image = font.render('Debug', 3, (255, 255, 255))
        self.rect = self.welcome_image.get_rect()
        screen_rect = states.TheStateManager.screen.get_rect()
        self.rect.center = screen_rect.center

        # players
        self.players = [Player(), NPCharacter()]
        if self.multiplayer:
            self.players = [Player(), Player()]
            # init player 2 with different keys
            player2 = self.players[1]
            player2.actionkey_pickup = pygame.K_k
            player2.actionkey_throw = pygame.K_i
            player2.actionkey_walk_l = pygame.K_j
            player2.actionkey_walk_r = pygame.K_l
            player2.side = 1

        # stuff
        self.stuff = []
        for i in range(3):
            self.stuff.append(FlyObj((i * 80, 350)))
        for i in range(10):
            self.stuff.append(Bird())
        for i in range(2):
            self.stuff.append(LadyBug())
            self.stuff.append(Carterpilar())

        self.stuff.append(Mole())
        self.stuff.append(WateringCan(Vec2D(100, 200)))
        self.stuff.append(WateringCan(Vec2D(700, 200)))
Пример #26
0
 def __init__(self):
     pygame.mixer.init()
     self.grunts = []
     for i in range(12):
         filename = "grunt" + str(i + 1) + ".wav"
         self.grunts.append(
             pygame.mixer.Sound(data.filepath("sounds/" + filename)))
     pygame.mixer.music.load(data.filepath("music/unicyclingFade.ogg"))
     pygame.mixer.music.play(-1)
Пример #27
0
def main():
	pygame.init()
	pygame.mixer.init()
	sound.setvolume(0)
	pygame.font.init()
	graphics.setmode()
	graphics.init()
	if settings.playback:
		state0, record = cPickle.load(open(data.filepath("record.pkl"), "rb"))
		state.loadobj(state0)
		scene.push(scenes.game if settings.skipmenu else scenes.menu)
	elif settings.restart:
		state.init()
		scene.push(scenes.game if settings.skipmenu else scenes.menu)
	else:
		scene.push(scenes.menu)
		if state.load():
			scene.push(scenes.game)
	clock = pygame.time.Clock()

	if settings.playback:
		for rstate, dt, events, kpress, mpos in record:
			clock.tick(settings.fps)
			s = scene.top()
			random.setstate(rstate)
			if settings.vidcap:
				vidcap._mpos = mpos
			s.think(dt, events, kpress, mpos)
			s.draw(mpos)
			pygame.display.flip()
		return

	if settings.getrecord:
		record = []
		state0 = cPickle.loads(cPickle.dumps(state.saveobj()))
	while scene.top():
		dt = min(0.001 * clock.tick(settings.fps), 0.5)
		if settings.fixfps:
			dt = 1.0 / settings.fps
		s = scene.top()
		while dt > 0:
			tdt = min(dt, 0.1)
			events = map(EventProxy, pygame.event.get())
			kpress = pygame.key.get_pressed()
			mpos = pygame.mouse.get_pos()
			if settings.getrecord:
				record.append((random.getstate(), tdt, events, kpress, mpos))

			s.think(tdt, events, kpress, mpos)
			dt -= tdt
		s.draw(mpos)
		pygame.display.flip()

	graphics.quit()
	
	if settings.getrecord:
		cPickle.dump([state0, record], open(data.filepath("record.pkl"), "wb"))
Пример #28
0
 def loadfonts(self):
     pygame.font.init()
     self.smallfont = pygame.font.Font(data.filepath('vera.ttf'), 20)
     self.timerfont = pygame.font.Font(data.filepath('comicate.ttf'), 40)
     self.menufont = pygame.font.Font(data.filepath('comicate.ttf'), 50)
     self.worldnamefont = pygame.font.Font(data.filepath('comicate.ttf'),
                                           80)
     self.levelnamefont = self.timerfont
     self.menufont2 = self.timerfont
Пример #29
0
 def on_init(self):
     self.splash = pygame.image.load(data.filepath('law_and_order.png'))
     self.snd = data.load_sound(data.filepath('sfx/intro.wav')).play()
     self.played = False
     self.pos = Vec2D(400, -50)
     self.accel = Vec2D(0, 0.0025)
     self.vel = Vec2D(0, 0)
     self.run_time = 0.0
     self.target_time = 900.0
Пример #30
0
    def init(self):
        self.moon = pygame.image.load(data.filepath(os.path.join('intro', 'intro.png'))).convert()
        img = pygame.image.load(data.filepath(os.path.join('images', 'jump', 'player', 'right.png')))
        w = 160
        self.player = pygame.transform.scale(img, (w, img.get_height() * w / img.get_width()))

        self.bkgr = pygame.image.load(data.filepath(os.path.join('bkgr', '2.png')))

        self.frame = 0
Пример #31
0
    def init(self):
        self.frame = FPS

        self.moon = pygame.image.load(data.filepath(os.path.join('intro', 'intro.png'))).convert()
        img = pygame.image.load(data.filepath(os.path.join('images', 'logo.png')))
        w = 120
        self.logo = pygame.transform.scale(img, (w, img.get_height() * w / img.get_width()))
        self.black = self.moon.convert()
        self.black.fill((0, 0, 0))
Пример #32
0
 def onGameOver(self, message):
     levels = message.data
     if all([level.Won for level in levels]):
         pyglet.media.load(data.filepath('sound/win1.wav'), streaming=False).play()
     else:
         pyglet.media.load(data.filepath('sound/lose1.wav'), streaming=False).play()
     self.State.unsubscribe()
     self.State = summarystate.SummaryState(levels)
     self.State.start()
Пример #33
0
def init():
    global image_cache
    image_cache = resource.TiledImageResourceCache(data.filepath('images'), tile_size=(TILE_SIZE, TILE_SIZE))
    image_cache.register(image__tileset1, load_image)

    global font_cache
    font_cache = resource.FontResourceCache(data.filepath('fonts'))
    for name, size in fonts:
        font_cache.register(name, load_font, size)
Пример #34
0
 def on_init(self):
     self.splash = pygame.image.load(data.filepath('law_and_order.png'))
     self.snd = data.load_sound(data.filepath('sfx/intro.wav')).play()
     self.played = False
     self.pos = Vec2D(400, -50)
     self.accel = Vec2D(0, 0.0025)
     self.vel = Vec2D(0, 0)
     self.run_time = 0.0
     self.target_time = 900.0
Пример #35
0
def main():
    pyglet.font.add_directory(data.filepath('fonts'))
    pyglet.resource.path.append(data.filepath('.'))
    pyglet.resource.path.append(data.filepath('maps'))
    pyglet.resource.path.append(data.filepath('chars'))
    pyglet.resource.reindex()
    
    director.init(resizable=True, width=800, height=600, audio=None)
    s = game_menu.get_scene()
    director.run( s )
Пример #36
0
	def __init__(self, screeen):
		self.screen = screeen #point to main display object, though it should be passed to the render function
		self.title_bg = pygame.image.load(data.filepath("edtitleish_sm.jpg"))
		self.font = pygame.font.Font(data.filepath("visitor1.ttf"), 24)
		self.selected = "start"
		self.text_start = "New Bizness"
		self.text_level = "test 1"
		self.text_exit = "Bizness Time is Over"
		self.level_list = self.getlevels()
		self.level_index = 0
Пример #37
0
def main():
    pyglet.font.add_directory(data.filepath('fonts'))
    pyglet.resource.path.append(data.filepath('.'))
    pyglet.resource.path.append(data.filepath('maps'))
    pyglet.resource.path.append(data.filepath('chars'))
    pyglet.resource.reindex()

    director.init(resizable=True, width=800, height=600, audio=None)
    s = game_menu.get_scene()
    director.run(s)
Пример #38
0
    def initScores(self):
        self.font = data.filepath('You Are Loved.ttf')
        self.scoreg = qgl.scene.Group()
        self.lostg = qgl.scene.Group()
        self.savedg = qgl.scene.Group()

        self.energyg = qgl.scene.Group()
        if not self.horEnergy:
            scoreQuad = leafs.AlignedQuad((32, 512), 0.5, 1)
            scoreText = qgl.scene.state.Texture(
                data.filepath("fullcharge.png"))
            self.energyg.scale = (1, 1, 1)
            self.energyg.translate = (0, -280, 0)
        else:
            scoreQuad = leafs.AlignedQuad((128, 16), 1, 0.5)
            scoreText = qgl.scene.state.Texture(
                data.filepath("fullcharge.png"))
            #scoreText = qgl.scene.state.Texture(data.filepath("emptycharge.png"))
            self.energyg.scale = (1, 1, 1)
            self.energyg.translate = (-50, 210, 0)

        color = qgl.scene.state.Color((1.0, 1.0, 1.0, 0.7))
        self.energyg.add(scoreText, color, scoreQuad)
        #self.energyg.angle = 90
        self.energyg.accept(self.compiler)
        self.scoreg.add(self.energyg)
        self.scoreg.translate = (-330, 0, 0)
        self.root_node.add(self.scoreg)

        ##self.emptyg = qgl.scene.Group()
        ##base = qgl.scene.state.Quad((64,16))
        ##empty = qgl.scene.state.Texture(data.filepath("fullcharge.png"))
        ##self.emptyg.translate=(0,-3,0)
        ##self.emptyg.scale = (0.4,0.2,1)
        ##self.emptyg.add(empty,base)
        ##self.energyg = qgl.scene.Group()
        ##scoreQuad = qgl.scene.state.Quad((64,16))
        ##scoreText = qgl.scene.state.Texture(data.filepath("fullcharge.png"))
        ##self.energyg.scale = (0.20,0.20,1)
        ##self.energyg.translate=(0,-3,0)
        ##self.energyg.add(scoreQuad, scoreText)

        #ballGroup = qgl.scene.Group()
        #ballTexture = qgl.scene.state.Texture(data.filepath("scoreback2.png"))
        #ballQuad = qgl.scene.state.Quad((64,8))
        #ballGroup.add(ballTexture)
        #ballGroup.add(ballQuad)
        #ballGroup.translate=(0,1,0)
        #ballGroup.scale=(0.6,1,1)

        #self.scoreg.add(ballGroup)
        ##self.scoreg.add(self.emptyg)
        ##self.scoreg.add(self.energyg)
        self.scoreg.add(self.lostg)
        self.scoreg.add(self.savedg)
Пример #39
0
def loadIm(name):
    file = data.filepath(name)
    try:
        image = pygame.image.load(file)
        return image.convert_alpha()
    except:
        name = 'error.png'
        print 'Could not load:', file
        file = data.filepath(name)
        image = pygame.image.load(file)
        return image.convert_alpha()
Пример #40
0
    def initScores(self):
        self.font = data.filepath('You Are Loved.ttf')
        self.scoreg = qgl.scene.Group()
        self.lostg = qgl.scene.Group()
        self.savedg = qgl.scene.Group()

        self.energyg = qgl.scene.Group()
        if not self.horEnergy:
            scoreQuad = leafs.AlignedQuad( (32,512), 0.5, 1 ) 
            scoreText = qgl.scene.state.Texture(data.filepath("fullcharge.png"))
            self.energyg.scale = (1,1,1)
            self.energyg.translate=(0,-280,0)
        else:
            scoreQuad = leafs.AlignedQuad( (128,16), 1, 0.5 ) 
            scoreText = qgl.scene.state.Texture(data.filepath("fullcharge.png"))
            #scoreText = qgl.scene.state.Texture(data.filepath("emptycharge.png"))
            self.energyg.scale = (1,1,1)
            self.energyg.translate=(-50,210,0)
            
        color = qgl.scene.state.Color ( (1.0,1.0,1.0, 0.7) )
        self.energyg.add(scoreText, color, scoreQuad)
        #self.energyg.angle = 90
        self.energyg.accept(self.compiler)
        self.scoreg.add(self.energyg)
        self.scoreg.translate= (-330, 0,0)
        self.root_node.add(self.scoreg)


        ##self.emptyg = qgl.scene.Group()        
        ##base = qgl.scene.state.Quad((64,16))
        ##empty = qgl.scene.state.Texture(data.filepath("fullcharge.png"))
        ##self.emptyg.translate=(0,-3,0)
        ##self.emptyg.scale = (0.4,0.2,1)
        ##self.emptyg.add(empty,base)
        ##self.energyg = qgl.scene.Group()
        ##scoreQuad = qgl.scene.state.Quad((64,16))
        ##scoreText = qgl.scene.state.Texture(data.filepath("fullcharge.png"))
        ##self.energyg.scale = (0.20,0.20,1)
        ##self.energyg.translate=(0,-3,0)
        ##self.energyg.add(scoreQuad, scoreText)
        
        #ballGroup = qgl.scene.Group()
        #ballTexture = qgl.scene.state.Texture(data.filepath("scoreback2.png"))
        #ballQuad = qgl.scene.state.Quad((64,8))
        #ballGroup.add(ballTexture)
        #ballGroup.add(ballQuad)
        #ballGroup.translate=(0,1,0)
        #ballGroup.scale=(0.6,1,1)

        #self.scoreg.add(ballGroup)        
        ##self.scoreg.add(self.emptyg)
        ##self.scoreg.add(self.energyg)
        self.scoreg.add(self.lostg)
        self.scoreg.add(self.savedg)
Пример #41
0
def startgame(screen):
    """
    Tell user about game. Show the keys.
    """
    pygame.mixer.music.load(filepath('pink-delta_hiscore.mod'))
    pygame.mixer.music.play()

    _starfield = pygame.transform.scale(load(filepath('starfield.png')),
                                        (settings.DISPLAY_SIZE)).convert()
    screen.blit(_starfield, (0, 0))
    font = pygame.font.Font(filepath('amiga4ever.ttf'), 16)

    textsurf = pygame.Surface(settings.DISPLAY_SIZE)
    name = pygame.key.name
    msg = textwrap.dedent("""
    Moon Pytrol
    Press %(left)s to slow down
    Press %(right)s to speed up
    Press %(jump)s to jump AND shoot.

    Avoid the craters, rocks and bombs.
    """) % dict(
        left=name(SLOWDOWN).upper(),
        right=name(SPEEDUP).upper(),
        jump=name(JUMP).upper())

    lines = msg.split('\n')

    blitlines = map(lambda m: font.render(m, False, settings.HUD_TEXT), lines)
    for i, line in enumerate(blitlines):
        textsurf.blit(line, (100, i*50 + 50))
    textsurf.set_colorkey(settings.BLACK)
    screen.blit(textsurf, (0, 0))
    pygame.display.flip()
    clock = pygame.time.Clock()
    s_to_start = font.render('Press %s to start' % name(JUMP).upper(),
                             False, settings.HUD_TEXT)
    t = time.time()

    while 1:
        for event in pygame.event.get():
            if event.type == pygame.QUIT: sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == QUIT: sys.exit()
                if event.key == pygame.K_q: sys.exit()
                if event.key == JUMP:
                    return True

        clock.tick(60)
        screen.blit(_starfield, (0, 0))
        screen.blit(textsurf, (0, 0))
        if int(time.time() - t) % 2:
            screen.blit(s_to_start, (100, 450))
        pygame.display.flip()
Пример #42
0
    def initialize(self):
        """
        Set up for our visuals live here.

        """

        self.isinitialized = False
        # destroy existing screens
        if self.screen:
            pygame.display.quit()
        # initialize pygame
        result = pygame.init()
        pygame.font.init()
        self.clock = pygame.time.Clock()
        pygame.display.set_caption('Mooncrete')

        ## load music
        #pygame.mixer.music.load(data.filepath('moon-defense.xm'))
        #pygame.mixer.music.play(-1)

        # TODO custom cursor
        pygame.mouse.set_visible(True)
        # switch the target resolution based on fullscreen mode
        target_size = DRAW_AREA.size
        flags = 0
        if self.fullscreen:
            # use native monitor resolution
            #target_size = (0, 0)
            flags = FULLSCREEN
        self.screen = pygame.display.set_mode(target_size, flags)
        # TODO calculate the native res to game_area height ratio
        #       and store it for scaling the render later.
        # center the game area within the monitor
        DRAW_AREA.topleft = (
            (self.screen.get_width() - DRAW_AREA.width) / 2,
            (self.screen.get_height() - DRAW_AREA.height) / 2,
        )

        # load font and sprites
        self.load_sprites()
        self.image = pygame.Surface(DRAW_AREA.size)
        self.smallfont = pygame.font.Font(data.filepath('BLADRMF_.TTF'), 20)
        self.bigfont = pygame.font.Font(data.filepath('BLADRMF_.TTF'), 42)

        # load a random title screen image
        background_filename = 'title-screen-%s.png' % random.randint(1, 4)
        self.background = pygame.image.load(
            data.filepath(background_filename)).convert()

        # create floating game panels
        self.create_panels()

        # we are done
        self.isinitialized = True
Пример #43
0
 def loadsounds(self):
     try:
         pygame.mixer.init()
         self.sfx = {'newgame': pygame.mixer.Sound(data.filepath('newgame.ogg')),
                     'click': pygame.mixer.Sound(data.filepath('click.ogg')),
                     'complete': pygame.mixer.Sound(data.filepath('complete.ogg')),
                     'laugh': pygame.mixer.Sound(data.filepath('eviljest.ogg'))}
         self.soundon = True
     except:
         print 'Cannot load sound'
         self.soundon = False
Пример #44
0
 def __init__(self, x, y, *groups):
     super(Bomb, self).__init__(*groups)
     width, height = self._image.get_size()
     self.rect = pygame.Rect(x, y, width, height)
     self.image = self._image 
     self.mask = pygame.mask.from_surface(self.image)
     self._speedx = 0  
     self._speedy = 0 
     self._sounds = {
         'drop': pygame.mixer.Sound(filepath('bomb-drop.wav')),
         'dead': pygame.mixer.Sound(filepath('explosion.wav'))}
Пример #45
0
 def load_images(self):
     """Load the asteroid animation images only.  Others are loaded
     elsewhere."""
     self.astim1 = pygame.image.load(data.filepath('roid1.png')).\
           convert_alpha()
     self.astim2 = pygame.image.load(data.filepath('roid2.png')).\
           convert_alpha()
     self.astim3 = pygame.image.load(data.filepath('roid3.png')).\
           convert_alpha()
     self.astim4 = pygame.image.load(data.filepath('roid4.png')).\
           convert_alpha()
Пример #46
0
 def load_images(self):
     """Load the asteroid animation images only.  Others are loaded
     elsewhere."""
     self.astim1 = pygame.image.load(data.filepath('roid1.png')).\
           convert_alpha()
     self.astim2 = pygame.image.load(data.filepath('roid2.png')).\
           convert_alpha()        
     self.astim3 = pygame.image.load(data.filepath('roid3.png')).\
           convert_alpha()        
     self.astim4 = pygame.image.load(data.filepath('roid4.png')).\
           convert_alpha()
Пример #47
0
    def initialize(self):
        """
        Set up for our visuals live here.

        """

        self.isinitialized = False
        # destroy existing screens
        if self.screen:
            pygame.display.quit()
        # initialize pygame
        result = pygame.init()
        pygame.font.init()
        self.clock = pygame.time.Clock()
        pygame.display.set_caption('Mooncrete')

        ## load music
        #pygame.mixer.music.load(data.filepath('moon-defense.xm'))
        #pygame.mixer.music.play(-1)

        # TODO custom cursor
        pygame.mouse.set_visible(True)
        # switch the target resolution based on fullscreen mode
        target_size = DRAW_AREA.size
        flags = 0
        if self.fullscreen:
            # use native monitor resolution
            #target_size = (0, 0)
            flags = FULLSCREEN
        self.screen = pygame.display.set_mode(target_size, flags)
        # TODO calculate the native res to game_area height ratio
        #       and store it for scaling the render later.
        # center the game area within the monitor
        DRAW_AREA.topleft = (
            (self.screen.get_width() - DRAW_AREA.width) / 2,
             (self.screen.get_height() - DRAW_AREA.height) / 2,)

        # load font and sprites
        self.load_sprites()
        self.image = pygame.Surface(DRAW_AREA.size)
        self.smallfont = pygame.font.Font(
            data.filepath('BLADRMF_.TTF'), 20)
        self.bigfont = pygame.font.Font(
            data.filepath('BLADRMF_.TTF'), 42)

        # load a random title screen image
        background_filename = 'title-screen-%s.png' % random.randint(1, 4)
        self.background = pygame.image.load(data.filepath(background_filename)).convert()

        # create floating game panels
        self.create_panels()

        # we are done
        self.isinitialized = True
Пример #48
0
 def hit(self, zombie):
     """
     Player was bitten by zombie.
     """
     zombie.die()
     if self.life == 0:
         pygame.mixer.Sound(data.filepath(settings.PLAYER_DEATH_SOUND)).play()
         self.alive = False
     else:
         pygame.mixer.Sound(data.filepath(settings.PLAYER_HIT_SOUND)).play()
     self.life -= 1
Пример #49
0
 def __init__(self, level, state_name):
     self.level = level
     self.level_str = 'level_' + str(level.level_number)
     self.real_screen = level.real_screen
     self.state_name = state_name
     self.information = yaml.load(open(data.filepath("configs", "state.yaml")))
     self.screen = pygame.surface.Surface((2 * const.WIDTH, 2 * const.HEIGHT))
     self.exit_animation = False
     pygame.mixer.music.stop()
     pygame.mixer.music.load(data.filepath('Audio', 'mini_2.mp3'))
     pygame.mixer.music.set_volume(const.SOUND_VOLUME)
     pygame.mixer.music.play(-1)
Пример #50
0
    def on_init(self, *args, **kwargs):
        global sky
        if not sky:
            sky = utility.Bgd()
        self.sky = sky

        self.scenery = pygame.image.load(data.filepath('lawn1.png'))
        self.splashorig = pygame.image.load(data.filepath('splash.png'))
        self.splash = pygame.image.load(data.filepath('splash.png'))

        self.fadeTime = SPLASHTIME
        self.fadeElapsed = None
Пример #51
0
    def on_init(self, *args, **kwargs):
        global sky
        if not sky:
            sky = utility.Bgd()
        self.sky = sky

        self.scenery = pygame.image.load(data.filepath('lawn1.png'))
        self.splashorig = pygame.image.load(data.filepath('splash.png'))
        self.splash = pygame.image.load(data.filepath('splash.png'))
        
        self.fadeTime = SPLASHTIME
        self.fadeElapsed = None
def create_title_screen(world, scheduler, end_game):
    from ingame_screen import create_ingame_screen

    title = create_text_entity(
        world,
        "The Family's Treasure Tale",
        (255, 255, 255),
        70,
        50,
        150,
        0,
        filepath("bilbo/BilboSwashCaps-Regular.otf")
    )
    center_horizontally(title)

    start = create_hoverable_text_entity(
        world,
        "Start",
        (160, 160, 160),
        (255, 255, 255),
        40,
        200,
        300,
        0,
        filepath("bilbo/Bilbo-Regular.otf")
    )
    start.add_component(
        Clickable(
            lambda: gamescreen_transition(
                world,
                scheduler,
                end_game,
                create_ingame_screen
            ),
            Button.LEFT
        )
    )
    center_horizontally(start)

    exit = create_hoverable_text_entity(
        world,
        "Exit",
        (160, 160, 160),
        (255, 255, 255),
        40,
        200,
        400,
        0,
        filepath("bilbo/Bilbo-Regular.otf")
    )
    exit.add_component(Clickable(end_game, Button.LEFT))
    center_horizontally(exit)
Пример #53
0
 def __init__(self, config_name):
     self.config_name = config_name
     self.level_file = None
     default_map = '%s.tga' % config_name
     for poss_file in ['levels/%s.conf' % config_name, '%s.conf' % config_name,
             'levels/%s' % config_name, config_name]:
         cand = data.filepath(poss_file)
         if os.path.exists(cand):
             self.level_file = cand
             break
     if not self.level_file:
         raise RuntimeError('Unable to load %s' % config_name)
     # Load the level info file
     # setup defaults
     defaults = {
             'map' : default_map,
             'level name' : config_name,
             'sell price chicken' : constants.DEFAULT_SELL_PRICE_CHICKEN,
             'sell price egg' : constants.DEFAULT_SELL_PRICE_EGG,
             'sell price dead fox' : constants.DEFAULT_SELL_PRICE_DEAD_FOX,
             'turn limit' : constants.DEFAULT_TURN_LIMIT,
             'goal' : constants.DEFAULT_GOAL_DESC,
             'max foxes' : constants.DEFAULT_MAX_FOXES,
             'min foxes' : 0,
             'starting cash' : constants.DEFAULT_STARTING_CASH,
             'starting wood' : constants.DEFAULT_STARTING_WOOD,
             }
     # Add default fox weightings
     for animal, prob in DEFAULT_FOX_WEIGHTINGS:
         defaults[animal.CONFIG_NAME] = prob
     config = RawConfigParser(defaults)
     config.read(self.level_file)
     # NB. This assumes the level file is correctly formatted. No provision
     # is made for missing sections or incorrectly specified values.
     # i.e. Things may blow up
     map_file = config.get('Level', 'map')
     self.map = data.filepath('levels/%s' % map_file)
     self.level_name = config.get('Level', 'level name')
     self.goal = config.get('Level', 'goal')
     self.turn_limit = config.getint('Level', 'turn limit')
     self.max_foxes = config.getint('Game values', 'max foxes')
     self.min_foxes = config.getint('Game values', 'min foxes')
     self.sell_price_chicken = config.getint('Game values', 'sell price chicken')
     self.sell_price_egg = config.getint('Game values', 'sell price egg')
     self.sell_price_dead_fox = config.getint('Game values',
             'sell price dead fox')
     self.starting_cash = config.getint('Game values', 'starting cash')
     self.starting_wood = config.getint('Game values', 'starting wood')
     self.fox_weightings = []
     for animal, _prob in DEFAULT_FOX_WEIGHTINGS:
         self.fox_weightings.append((animal, config.getint('Fox probablities',
             animal.CONFIG_NAME)))
Пример #54
0
 def loadsounds(self):
     try:
         pygame.mixer.init()
         self.sfx = {
             'newgame': pygame.mixer.Sound(data.filepath('newgame.ogg')),
             'click': pygame.mixer.Sound(data.filepath('click.ogg')),
             'complete': pygame.mixer.Sound(data.filepath('complete.ogg')),
             'laugh': pygame.mixer.Sound(data.filepath('eviljest.ogg'))
         }
         self.soundon = True
     except:
         print 'Cannot load sound'
         self.soundon = False
Пример #55
0
    def init(self):
        self.moon = pygame.image.load(
            data.filepath(os.path.join('intro', 'moon2.png'))).convert()
        img = pygame.image.load(
            data.filepath(os.path.join('images', 'player', 'right.png')))
        w = 160
        self.player = pygame.transform.scale(
            img, (w, img.get_height() * w / img.get_width()))

        self.bkgr = pygame.image.load(
            data.filepath(os.path.join('bkgr', '2.png')))

        self.frame = 0
Пример #56
0
    def __init__(self, player):
        self.level_elements = pygame.sprite.Group()

        self.player = player

        self.bg = parallax.ParallaxSurface((SCREEN_WIDTH, SCREEN_HEIGHT),
                                           pygame.RLEACCEL)
        self.bg.add(data.filepath('backgrounds/sky.jpg'), 7)
        self.bg.add(data.filepath('backgrounds/back_buildings.png'), 5)
        self.bg.add(data.filepath('backgrounds/front_buildings.png'), 3)
        self.bg.add(data.filepath('backgrounds/ground.png'), 1)

        # How far this world has been scrolled left/right
        self.world_shift = 0
        self.level_limit = -1000
Пример #57
0
    def runFinalScreen(self, won):
        pygame.mixer.music.fadeout(300)
    
        if won:
            texture = textures.Texture(data.filepath('youwon.png'))
            sound = pygame.mixer.Sound(data.filepath('funfair.ogg'))
        else:
            texture = textures.Texture(data.filepath('youfailed.png'))
            sound = pygame.mixer.Sound(data.filepath('ohnoes.ogg'))
        
        done = False
        glClearColor(0, 0, 0, 1)
        glEnable(GL_BLEND)
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)
        glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE)
        
        clock = pygame.time.Clock()
        sound.play()
        elapsed = 0

        while not done:
            
            for e in pygame.event.get():
                if e.type == QUIT: sys.exit()
                if e.type != KEYDOWN: continue
                elif e.key == K_ESCAPE:
                    done = True
                    
            glClear(GL_COLOR_BUFFER_BIT)
            dt = clock.tick(60)
            
            if elapsed < 1.0:
                glColor(1, 1, 1, elapsed)
            elif elapsed > 5:
                glColor(1, 1, 1, ((8 - elapsed) / 3.0))
            else:
                glColor(1, 1, 1, 1)
                
            glPushMatrix()
            glTranslatef(0, 100, 0)
            texture.render()
            glPopMatrix()
            pygame.display.flip()
            
            if elapsed > 8:
                done = True
                
            elapsed += (dt / 1000.0)
Пример #58
0
def main():
    pygame.init()
    pygame.time.Clock
    pygame.mixer.music.load(data.filepath('title.wav'))
    pygame.mixer.music.play(-1)
    pygame.mouse.set_visible(1)
    pygame.display.set_caption('Super Mario Bros.')
    screen = pygame.display.set_mode((640,460))
    spritesheet = Spritesheet('mario.png')
    level = Level()
    Level.tiles = spritesheet.imgsat([(48,336,15,15),
                                      (0, 0, 15, 15),
                                      (144,144,15,15)])
    Level.hills = spritesheet.imgsat([(128,128,15,15),
                                      (128,128,15,30),
                                      (144,141,15,18),
                                      (160,128,15,31),
                                      (160,128,15,15)],-1)
    level.makebg(0)
    screen.blit(level.background,(0,0))
    while 1:
        pygame.display.flip()
        for event in pygame.event.get():
            if event.type == QUIT or (event.type == KEYDOWN and event.key == K_ESCAPE):
                return
Пример #59
0
    def run_picture_state(self):
        self.screen = pygame.surface.Surface(
            (2 * const.WIDTH, 2 * const.HEIGHT))
        self.screen.fill(0)
        img_info = self.information[self.level_str][self.state_name]
        img = pygame.transform.scale(pygame.image.load(data.filepath("State",
                    img_info['name'])), (img_info['width'], img_info['hight']))
        self.screen.blit(img, (img_info['screen_width'], img_info['screen_hight']))
        pygame.transform.scale(self.screen,
                               (2 * const.WIDTH, 2 * const.HEIGHT),
                               self.real_screen)

        while True:

            pygame.display.flip()
            for event in pygame.event.get():
                if event.type == pygame.MOUSEBUTTONDOWN:
                    return True
                if event.type == pygame.QUIT:
                    pygame.mixer.music.stop()
                    pygame.quit()
                    exit(0)
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_ESCAPE:
                        pygame.mixer.music.fadeout(const.FADEOUT_TIME)
                        sys.exit()