def addedToWorld(self, world): """The actor is ready to be populated""" super(CreditsScreen, self).addedToWorld(world) # # Block for titles self.title_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.VerticalBar('title-block', height=G('title-height')), layer_name='ui', center_position=G('title-position')) # # Titles self.title_block.addActor(serge.blocks.actors.StringText('t', 't', 'TACMAN', colour=G('title-colour'), font_size=G('title-font-size'))) self.title_block.addActor(serge.blocks.actors.StringText('st', 'st', ' Turn-based, tactical PACMAN', colour=G('subtitle-colour'), font_size=G('subtitle-font-size'))) # # Version self.version = serge.blocks.utils.addVisualActorToWorld(world, 'v', 'v', serge.visual.Text(('v%s' % common.version), colour=G('version-colour'), font_size=G('version-font-size')), layer_name='ui', center_position=G('version-position')) # # Block for menu self.menu_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.HorizontalBar('menu-block', height=G('menu-height'), width=G('menu-width')), layer_name='ui', center_position=G('credits-menu-position')) # self.back = self.menu_block.addActor(serge.blocks.actors.StringText('back', 'back', 'Back', colour=G('menu-colour'), font_size=G('menu-font-size'))) self.back.linkEvent(serge.events.E_LEFT_CLICK, self.doBack) # self.bg = serge.blocks.utils.addSpriteActorToWorld(world, 'bg', 'bg', 'credits', 'main', center_position=G('credits-bg-position')) # musictoggle.addToggle(world)
def _initLevel(self, world, level): """Put the pills on the screen""" self.level = level # # The behaviour manager self.manager = serge.blocks.behaviours.BehaviourManager('behaviours', 'behaviours') world.addActor(self.manager) # self.initGrid(world, level) self.initUIElements(world, level) self.initPlayers(world, level) self.initMoveOrder() # self.manager.assignBehaviour(self, serge.blocks.behaviours.TimedCallback(G('ghost-decision-time'), self.chooseMove), 'ghost-moving') # self.setupDevMode(world) # self.manager.pauseBehaviours('moving') # # The level over display self._level_over = serge.blocks.utils.addVisualActorToWorld(world, 'level-over', 'level-over', serge.visual.Text('Complete', G('level-over-colour'), font_size=G('level-over-size')), 'messages', G('level-over-position')) self._level_over.active = False self._restart = serge.blocks.utils.addVisualActorToWorld(world, 'level-restart', 'level-restart', serge.blocks.visualblocks.RectangleText('Restart', G('restart-font-colour'), G('restart-size'), G('restart-back-colour'), font_size=G('restart-font-size')), 'messages', G('restart-position')) self._restart.active = False self._restart.linkEvent(serge.events.E_LEFT_CLICK, self.restartClick) # self._next = serge.blocks.utils.addVisualActorToWorld(world, 'level-restart', 'level-restart', serge.blocks.visualblocks.RectangleText('New Level', G('restart-font-colour'), G('restart-size'), G('restart-back-colour'), font_size=G('restart-font-size')), 'messages', G('restart-position')) self._next.active = False self._next.linkEvent(serge.events.E_LEFT_CLICK, self.nextClick) # musictoggle.addToggle(world)
def addedToWorld(self, world): """The actor is ready to be populated""" super(StartScreen, self).addedToWorld(world) # # Block for titles self.title_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.VerticalBar('title-block', height=G('title-height')), layer_name='ui', center_position=G('title-position')) # # Titles self.title_block.addActor(serge.blocks.actors.StringText('t', 't', 'TACMAN', colour=G('title-colour'), font_size=G('title-font-size'))) self.title_block.addActor(serge.blocks.actors.StringText('st', 'st', ' Turn-based, tactical PACMAN', colour=G('subtitle-colour'), font_size=G('subtitle-font-size'))) # # Version self.version = serge.blocks.utils.addVisualActorToWorld(world, 'v', 'v', serge.visual.Text(('v%s' % common.version), colour=G('version-colour'), font_size=G('version-font-size')), layer_name='ui', center_position=G('version-position')) # # URL self.url = serge.blocks.utils.addVisualActorToWorld(world, 'u', 'u', serge.visual.Text('http://perpetualpyramid.com', colour=G('url-colour'), font_size=G('url-font-size')), layer_name='ui', center_position=G('url-position')) self.url.linkEvent(serge.events.E_LEFT_CLICK, self.launchURL) # # Block for menu self.menu_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.HorizontalBar('menu-block', height=G('menu-height'), width=G('menu-width')), layer_name='ui', center_position=G('menu-position')) # self.tutorial = self.menu_block.addActor(serge.blocks.actors.StringText('tut', 'tut', 'Tutorial', colour=G('menu-colour'), font_size=G('menu-font-size'))) self.play = self.menu_block.addActor(serge.blocks.actors.StringText('play', 'play', 'Play', colour=G('menu-colour'), font_size=G('menu-font-size'))) self.credits = self.menu_block.addActor(serge.blocks.actors.StringText('credits', 'credits', 'Credits', colour=G('menu-colour'), font_size=G('menu-font-size'))) # self.tutorial.linkEvent(serge.events.E_LEFT_CLICK, self.doTutorial) self.play.linkEvent(serge.events.E_LEFT_CLICK, self.doPlay) self.credits.linkEvent(serge.events.E_LEFT_CLICK, self.doCredits) # self.music_toggle = musictoggle.addToggle(world) # self.start_playlist = ['start-music'] serge.sound.Music.setPlaylist(self.start_playlist) # world.linkEvent(serge.events.E_ACTIVATE_WORLD, self.worldActivated) # # Create interesting display self.initGrid(world, 'start') self.initPlayers(world, 'start', interactive=False)
def addedToWorld(self, world): """The actor is ready to be populated""" super(ResumeScreen, self).addedToWorld(world) # # Block for titles self.title_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.VerticalBar('title-block', height=G('title-height')), layer_name='ui', center_position=G('title-position')) # # Titles self.title_block.addActor(serge.blocks.actors.StringText('t', 't', 'TACMAN', colour=G('title-colour'), font_size=G('title-font-size'))) self.title_block.addActor(serge.blocks.actors.StringText('st', 'st', ' Turn-based, tactical PACMAN', colour=G('subtitle-colour'), font_size=G('subtitle-font-size'))) # # Version self.version = serge.blocks.utils.addVisualActorToWorld(world, 'v', 'v', serge.visual.Text(('v%s' % common.version), colour=G('version-colour'), font_size=G('version-font-size')), layer_name='ui', center_position=G('version-position')) # # Block for menu self.menu_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.HorizontalBar('menu-block', height=G('menu-height'), width=G('menu-width')), layer_name='ui', center_position=G('menu-position')) # self.restart = self.menu_block.addActor(serge.blocks.actors.StringText('restart', 'restart', 'Restart', colour=G('menu-colour'), font_size=G('menu-font-size'))) self.play = self.menu_block.addActor(serge.blocks.actors.StringText('play', 'play', 'Resume', colour=G('menu-colour'), font_size=G('menu-font-size'))) self.quit = self.menu_block.addActor(serge.blocks.actors.StringText('quit', 'quit', 'Quit', colour=G('menu-colour'), font_size=G('menu-font-size'))) # self.restart.linkEvent(serge.events.E_LEFT_CLICK, self.doStart) self.play.linkEvent(serge.events.E_LEFT_CLICK, self.doPlay) self.quit.linkEvent(serge.events.E_LEFT_CLICK, self.doQuit) # self.music_toggle = musictoggle.addToggle(world) # # Create interesting display self.initGrid(world, 'start') self.initPlayers(world, 'start', interactive=False)
def addedToWorld(self, world): """The actor is ready to be populated""" super(TutorialScreen, self).addedToWorld(world) # # Block for titles self.title_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.VerticalBar('title-block', height=G('title-height')), layer_name='ui', center_position=G('title-position')) # # Titles self.title_block.addActor(serge.blocks.actors.StringText('t', 't', 'TACMAN', colour=G('title-colour'), font_size=G('title-font-size'))) self.title_block.addActor(serge.blocks.actors.StringText('st', 'st', ' Tutorial Mode ', colour=G('subtitle-colour'), font_size=G('subtitle-font-size'))) # # Block for menu self.menu_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.HorizontalBar('menu-block', height=G('tutorial-menu-height'), width=G('tutorial-menu-width')), layer_name='ui', center_position=G('tutorial-menu-position')) # self.back = self.menu_block.addActor(serge.blocks.actors.StringText('back', 'back', 'Back', colour=G('menu-colour'), font_size=G('menu-font-size'))) self.credits = self.menu_block.addActor(serge.blocks.actors.StringText('credits', 'credits', 'Credits', colour=G('menu-colour'), font_size=G('menu-font-size'))) # self.back.linkEvent(serge.events.E_LEFT_CLICK, self.doPlay) self.credits.linkEvent(serge.events.E_LEFT_CLICK, self.doCredits) # self.music_toggle = musictoggle.addToggle(world) # self.music = serge.sound.Music.getItem('start-music') self.music.play() self.level_music = serge.sound.Music.getItem('level-music') # # Create game play area level = 'tutorial' self.initGrid(world, level) self.initPlayers(world, level, interactive=True) self.initUIElements(world, level) self.initMoveOrder() self.setupDevMode(world) # # Create the help bubble self.help = serge.blocks.utils.addVisualActorToWorld(world, 'help', 'help', serge.blocks.visualblocks.SpriteText('Click on the Tacman to begin\nmaking your move.', G('help-font-colour'), 'help-bubble', font_size=G('help-font-size')), 'messages', G('help-position')) # self.manager.assignBehaviour(self, serge.blocks.behaviours.TimedCallback(G('ghost-decision-time'), self.chooseMove), 'ghost-moving') self.manager.assignBehaviour(self, serge.blocks.behaviours.TimedCallback(G('tutorial-step-time'), self.nextStep), 'tutorial-steps') # self.linkEvent('eat-yellow-pill', self.eatYellow) self.linkEvent('eat-ghost', self.eatGhost) self.linkEvent('hit-ghost', self.hitGhost) self._mode_toggle.linkEvent('fright-mode-over', self.frightOver) # self.manager.pauseBehaviours('moving') self.step = 'wait-first-click' self._told_icicle = False self._told_boost = False self._level_over = serge.actor.Actor('level-over') self._level_over.active = False
def addedToWorld(self, world): """The actor is ready to be populated""" super(LevelScreen, self).addedToWorld(world) # # Block for titles self.title_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.VerticalBar('title-block', height=G('title-height')), layer_name='ui', center_position=G('title-position')) # # Titles self.title_block.addActor(serge.blocks.actors.StringText('t', 't', 'TACMAN', colour=G('title-colour'), font_size=G('title-font-size'))) self.title_block.addActor(serge.blocks.actors.StringText('st', 'st', ' Turn-based, tactical PACMAN', colour=G('subtitle-colour'), font_size=G('subtitle-font-size'))) # # Version self.version = serge.blocks.utils.addVisualActorToWorld(world, 'v', 'v', serge.visual.Text(('v%s' % common.version), colour=G('version-colour'), font_size=G('version-font-size')), layer_name='ui', center_position=G('version-position')) # # Block for menu self.menu_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.HorizontalBar('menu-block', height=G('menu-height'), width=G('menu-width')), layer_name='ui', center_position=G('credits-menu-position')) # self.back = self.menu_block.addActor(serge.blocks.actors.StringText('back', 'back', 'Back', colour=G('menu-colour'), font_size=G('menu-font-size'))) self.back.linkEvent(serge.events.E_LEFT_CLICK, self.doBack) # musictoggle.addToggle(world) # # A menu to select which level to play self.level_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.HorizontalBar('level-block', width=G('level-block-width'), height=G('level-block-height')), layer_name='ui', center_position=G('level-block-position')) # # Show the levels we can choose for idx, level_name in enumerate(G('active-levels')): sprite_name = '%s-small' % G('background', level_name) button = serge.actor.MountableActor('level-button', ('level-button-%d' % idx)) label = serge.blocks.actors.StringText('level-label', ('level-label-%d' % idx), G('level-title', level_name), colour=G('level-title-colour'), font_size=G('level-title-font-size')) label.setLayerName('ui') button.mountActor(label, G('level-title-offset')) button.setSpriteName(sprite_name) self.level_block.addActor(button) button.linkEvent(serge.events.E_LEFT_CLICK, self.levelSelect, level_name) # # Show the difficulty select self.difficulty_block = serge.blocks.utils.addActorToWorld(world, serge.blocks.layout.HorizontalBar('difficulty-block', width=G('difficulty-block-width'), height=G('difficulty-block-height')), layer_name='ui', center_position=G('difficulty-block-position')) # # Add all difficulties self.buttons = serge.actor.ActorCollection() for difficulty in ('easy', 'normal', 'hard'): button = serge.actor.Actor('difficulty-button', ('difficulty-%s' % difficulty)) button.visual = serge.blocks.visualblocks.TextToggle( difficulty.capitalize(), G('difficulty-colour'), 'toggle-button', font_size=G('difficulty-font-size')) button.linkEvent(serge.events.E_LEFT_CLICK, self.difficultySelect, (button, difficulty)) self.difficulty_block.addActor(button) self.log.debug('For diff %s, current is %s' % (difficulty, self.difficulty_levels[self.options.number])) if self.difficulty_levels[self.options.number] == difficulty: button.visual.setOn() else: button.visual.setOff() self.buttons.append(button) # self.level_playlist = ['level-music', 'level-music-2']