def addedToWorld(self, world): """The start screen was added to the world""" super(NameScreen, self).addedToWorld(world) # self.manager = world.findActorByName('behaviours') # # Logo the_theme = theme.getTheme('name-screen') L = the_theme.getProperty logo = serge.blocks.utils.addSpriteActorToWorld(world, 'logo', 'logo', 'icon', 'ui', center_position=L('logo-position')) # # Background bh = serge.blocks.utils.addSpriteActorToWorld(world, 'bg', 'bg', L('screen-background-sprite'), 'background', center_position=L('screen-background-position')) # serge.blocks.utils.addTextItemsToWorld(world, [ ('Quick play - random cave', 'random', self.chooseRandomName), ('Click to select a random cave', 'random-small'), ('Enter a name for your cave', 'named', self.chooseName), ('You will be able to return to your cave later', 'named-small'), ('Previous caves', 'previous'), ('Click below to return to a previously visited cave', 'previous-small'), ('Back', 'back', serge.blocks.utils.backToPreviousWorld('click')), ], the_theme, 'ui') # # Name entry self.name_entry = serge.blocks.utils.addActorToWorld(world, serge.blocks.actors.TextEntryWidget('entry', 'entry', L('entry-width'), L('entry-height'), colour=L('entry-font-colour'), font_size=L('entry-font-size'), font_name=L('entry-font-name'), justify='center', background_visual=serge.blocks.visualblocks.Rectangle((L('entry-width'), L('entry-height')), L('entry-bg-colour'), L('entry-stroke-width'), L('entry-stroke-colour')), background_layer='ui-back', show_cursor=True), center_position=L('entry-position'), layer_name='ui') self.name_entry.linkEvent(serge.events.E_ACCEPT_ENTRY, self.chooseName) # # The history table self.history = serge.blocks.utils.addActorToWorld(world, self.globals.history, layer_name='ui', center_position=G('history-position', 'name-screen')) self.history.linkEvent(common.E_CAVE_SELECTED, self.chooseName) # # Overlay self.overlays = common.getOverlays(world, 'Building cave ...') # self.world.linkEvent(serge.events.E_ACTIVATE_WORLD, self.resetCamera)
def addedToWorld(self, world): """The start screen was added to the world""" super(StartScreen, self).addedToWorld(world) # self.camera_timer = 0 self.manager = world.findActorByName('behaviours') # # Logo the_theme = theme.getTheme('start-screen') L = the_theme.getProperty logo = serge.blocks.utils.addSpriteActorToWorld(world, 'logo', 'logo', 'logo', 'ui', center_position=L('logo-position')) # serge.blocks.utils.addTextItemsToWorld(world, [ (L('title'), 'title'), (L('title2'), 'title2'), ('v' + common.version, 'version'), ('Resume', 'resume', self.resumePlay), ('Start', 'start', serge.blocks.utils.worldCallback('name-screen', 'click')), ('Crystal collection', 'collection', serge.blocks.utils.worldCallback('collection-screen', 'click')), ('Help', 'help', serge.blocks.utils.worldCallback('help-screen', 'click')), ('Credits', 'credits', serge.blocks.utils.worldCallback('credits-screen', 'click')), ('Achievements', 'achievements', self.showAchievements), ], the_theme, 'ui') # self.start = world.findActorByName('start') self.resume = world.findActorByName('resume') self.resume.visible = False # self.music = serge.sound.Music.getItem('title-music') self.music.play(loops=-1) # self.world.linkEvent(serge.events.E_ACTIVATE_WORLD, self.worldActivated) # # Overlay self.overlays = common.getOverlays(world, 'Starting game ...', visible=True) # # Asynchronously build the graphical elements - this takes a while self.manager.assignBehaviour(self, serge.blocks.behaviours.TimedOneshotCallback(100, self.buildGraphics), 'build') # # FPS counter if self.options.cheat: fps = serge.blocks.utils.addActorToWorld(world, serge.blocks.actors.FPSDisplay(G('fps-x'), G('fps-y'), G('fps-colour'), G('fps-size')))
def addedToWorld(self, world): """Added to the world""" super(MainScreen, self).addedToWorld(world) self.manager = world.findActorByName('behaviours') self.achievements = serge.blocks.achievements.getManager() serge.blocks.achievements.addAchievementsBannerToWorld(world, 'ui', 'ui-back', theme, self.manager) # world.setPhysicsStepsize(G('physics-step-size')) # self.status = serge.blocks.utils.addActorToWorld(world, status.Status('status', 'status')) # self.random_seed = G('level-seed') self.generateMap() # # Count the number of crystals that are in the cave self.status.total_crystals = len(world.findActorsByTag('crystal')) # # Player self.player = player.Player('player', 'player', maximum_reach=G('player-max-reach'), surface_tags=['rock'], jump_impulse=G('player-jump-impulse'), walk_impulse=G('player-walk-impulse'), can_scramble=False) self.player.setSpriteName('walking') self.player.setPhysical(serge.physical.PhysicalConditions( mass=20.0, force=climbing.G*20, visual_size=False, group=climbing.G_ROPES, elasticity=0.1, friction=G('player-friction'), width=G('player-effective-radius'), height=G('player-effective-radius'))) self.player.setLayerName('actors') self.player.moveTo(*G('player-initial-position')) self.player.linkEvent(common.E_PLAYER_DIED, self.playerDied) self.player.linkEvent(common.E_CAVE_SOLVED, self.caveSolved) self.player.linkEvent(serge.events.E_COLLISION, self.playerCollided) world.addActor(self.player) # # Text self.main_text = serge.blocks.utils.addTextToWorld( world, 'You died!', 'main-text', theme.getTheme('main-screen'), 'ui') self.sub_text = serge.blocks.utils.addTextToWorld( world, 'Press ENTER to restart', 'sub-text', theme.getTheme('main-screen'), 'ui') self.main_text.active = False self.sub_text.active = False # # Bugs self.bugs = [serge.blocks.utils.addActorToWorld(world, bug.Bug('bug', 'bug', 'base-bug', self), center_position=self.cave.getStartPosition()) for idx in range(G('number-bugs'))] # # The HUD self.hud = serge.blocks.utils.addActorToWorld(world, hud.HUD('hud', 'hud', self.status)) self.hud.linkEvent(common.E_ADD_LIGHT, self.addLight) # # Adding ropes self.cave.linkEvent(common.E_ROCK_CLICKED, self.addRope) self.cave.linkEvent(common.E_ROCK_RIGHT_CLICKED, self.switchRope) # self.world.linkEvent(serge.events.E_ACTIVATE_WORLD, self.worldActivated) self.world.linkEvent(serge.events.E_DEACTIVATE_WORLD, self.worldDeactivated) # # Sounds self.addSoundTexture(world) # # Overlay self.overlays = common.getOverlays(world, 'Building cave ...', visible=True) # # Cheating if self.options.cheat: fps = serge.blocks.utils.addActorToWorld(world, serge.blocks.actors.FPSDisplay(G('fps-x'), G('fps-y'), G('fps-colour'), G('fps-size')))