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
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)
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
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
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)
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
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
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)
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()
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 = ""
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)
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
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
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'
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)
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)
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()
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
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()
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)
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
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"))
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)))
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)
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"))
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
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
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
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))
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()
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)
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 )
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
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)
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)
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()
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)
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()
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
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
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'))}
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()
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
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
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)
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)
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)))
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
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
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
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)
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
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()