def __init__(self, setContextFunc): BaseContext.__init__(self, setContextFunc) self._background = texturehandler.fillSurface( pygame.Surface(const.screenSize), texturehandler.Textures.cobblestone, (64, 64)) # adjust logo to dimensions (adjustedWidth, 120) self._logo = texturehandler.adjustedSurface( texturehandler.Textures.logo, height=130) fontObj = Font(None, 40) self.addElements({ "bStartGame": GuiButton(240, 200, fontObj, "Start Game").connect(self.buttonStartGame), "bNeuronalNetworking": GuiButton(240, 280, fontObj, "Neuronal Networking").connect(self.buttonNetworks), "bOptions": GuiButton(240, 440, fontObj, "Options").connect(self.buttonOptions), "bHelp": GuiButton(240, 520, fontObj, "Help").connect(self.buttonHelp), "bQuit": GuiButton(240, 600, fontObj, "Quit").connect(self.closeApp) }) Music.setVolume(Entries.MusicVolume.getCurrentValue()) Music.play(Music.bgMusic, 0)
def __init__(self, seed, setContextFunc, population=None, train=True): BaseContext.__init__(self, setContextFunc) self.seed = seed self.pop = Population(seed, 100) if population is None else population if train: self.worlds = [] for net in sorted(self.pop.current_generation, key=lambda x: x.fitness, reverse=True): nWorld = NeuronalWorld(self.pop.seed, net) nWorld.renderer = RenderNeuronalWorld(nWorld) self.worlds.append(nWorld) nWorld.generatePlatform() else: best_nn = max((n for n in self.pop.current_generation), key=lambda x: x.fitness) nWorld = NeuronalWorld(self.pop.seed, best_nn) nWorld.renderer = RenderNeuronalWorld(nWorld) self.worlds = [nWorld] self.drawmode = 0 self._train = train # the gui overlays self._overlays = texhandler.adjustedSurface(texhandler.Textures.overlays, height=48) fontObj = SysFont("Monospace", 30, bold=True) # mode switch buttons self.addElements({ "bNext": GuiButton(constants.screenWidth - 100, constants.screenHeight - 70, fontObj, "->", width=70).connect(self.buttonModeSwitch, 1), "bPrevious": GuiButton(30, constants.screenHeight - 70, fontObj, "<-", width=70).connect( self.buttonModeSwitch, -1) })
def __init__(self, networkContext, setContextFunc, popFileName): BaseContext.__init__(self, setContextFunc) self._networkContext = networkContext self._popFileName = popFileName self._pop = Population.load_from_file( constants.res_loc("networks") + popFileName) self._background = texturehandler.fillSurface( pygame.Surface(constants.screenSize), random.choice(texturehandler.blocks), (64, 64)) best_fitness = max(n.fitness for n in self._pop.current_generation) fontObj = Font(None, 40) self.addElements({ "lCaption": GuiLabel.createCentered(10, Font(None, 60), self._pop.name), "lSeed": GuiLabel(240, 90, fontObj, "Current seed:"), "tfSeed": GuiNumberTextfield(450, 87, SysFont("Monospace", 24, bold=True), width=140, text=str(self._pop.seed)), "bSeed": GuiButton(600, 87, fontObj, "Set Seed", width=200, height=32).connect(self.buttonSetSeed), "lSize": GuiLabel( 240, 130, fontObj, "Population size: {}".format( len(self._pop.current_generation))), "lFitness": GuiLabel(240, 170, fontObj, "Highest fitness: {0:.2f}".format(best_fitness)), "lGeneration": GuiLabel(240, 210, fontObj, "Generation: {}".format(self._pop.generation_count)), "bDelete": GuiButton(390, 470, fontObj, "Delete (hold CTRL)", width=300, height=40, startColor=(255, 50, 50), endColor=(255, 100, 100)).connect(self.buttonDelete), "bShowResult": GuiButton(240, 530, fontObj, "Show Result", width=285).connect(self.buttonShowResult), "bResumeTraining": GuiButton(555, 530, fontObj, "Resume Training", width=285).connect(self.buttonResumeTraining), "bBack": GuiButton(240, 600, fontObj, "Back").connect(self.buttonBack) }) # enable key repeats pygame.key.set_repeat(500, 50)
def __init__(self, mainMenuContext, setContextFunc): BaseContext.__init__(self, setContextFunc) self._mainMenuContext = mainMenuContext self._background = texturehandler.fillSurface(pygame.Surface(screenSize), random.choice(texturehandler.blocks), (64, 64)) self._files = [] self.initGuiElements() # enable key repeats pygame.key.set_repeat(500, 50)
def __init__(self, parent, setContextFunc): BaseContext.__init__(self, setContextFunc) self._parent = parent self._background = texturehandler.fillSurface( pygame.Surface(screenSize), random.choice(texturehandler.blocks), (64, 64)) fontObj = Font(None, 40) self.addElements({ "lCaption": GuiLabel.createCentered(10, Font(None, 60), "Options"), "cEntries": GuiContainer(240, 77, 600, 450, fontObj), "bRestoreDefaults": GuiButton(390, 580, fontObj, "Restore Defaults", width=300).connect(self.buttonRestoreDefaults), "bBack": GuiButton(240, 650, fontObj, "Cancel", width=285).connect(self.buttonBack), "bSave": GuiButton(555, 650, fontObj, "Save", width=285).connect(self.buttonSave) }) # add config Entry buttons y = 10 for entry in config.Entries: self._elements["cEntries"].addElement( "l" + entry.name, GuiLabel(50, y + 16, fontObj, entry.desc + ":")) if entry.entryType == config.EntryType.Key or entry.entryType == config.EntryType.Toggle: self._elements["cEntries"].addElement( "b" + entry.name, GuiButton(300, y, fontObj, str(entry), width=200).connect(self.buttonConfigEntry, entry)) elif entry.entryType == config.EntryType.Scroll: self._elements["cEntries"].addElement( "b" + entry.name, GuiScrollbar(300, y + 5, 200, 40, fontObj, value=entry.getCurrentValue(), barLength=20).connect(self.scrollConfigEntry, entry)) y += 70
def __init__(self, gameContext, setContextFunc): BaseContext.__init__(self, setContextFunc) self._gameContext = gameContext fontObj = Font(None, 40) self.addElements({ "bResume": GuiButton(240, 200, fontObj, "Resume").connect(self.buttonResume), "bOptions": GuiButton(240, 300, fontObj, "Options").connect(self.buttonOptions), "bHelp": GuiButton(240, 400, fontObj, "Help").connect(self.buttonHelp), "bMainMenu": GuiButton(240, 500, fontObj, "Back to main menu").connect(self.buttonMainMenu) })
def __init__(self, parent, setContextFunc): BaseContext.__init__(self, setContextFunc) self._parent = parent self._background = texturehandler.fillSurface( Surface(constants.screenSize), random.choice(texturehandler.blocks), (64, 64)) self._overlays = texturehandler.adjustedSurface( texturehandler.Textures.overlays, height=48) self.addElements({ "lCaption": GuiLabel.createCentered(10, Font(None, 60), "Help"), "bBack": GuiButton(240, 600, Font(None, 40), "Back").connect(self.buttonBack) }) self.addIconHelp()
def __init__(self, gameContext, setContextFunc): BaseContext.__init__(self, setContextFunc) self._gameContext = gameContext self._fontObj = Font(None, 40) self.addElements({ "lGameOver": GuiLabel.createCentered(120, Font(None, 130), "Game Over!", (255, 0, 0)), "lSeed": GuiLabel.createCentered( 220, self._fontObj, "Your score is " + str(int(gameContext._world.points)) + ", Your seed: " + str(gameContext._world.seed), (0, 0, 0)), "bRetry": GuiButton(240, 520, self._fontObj, "Retry").connect(self.buttonRetry), "bMainMenu": GuiButton(240, 600, self._fontObj, "Back to main menu").connect(self.buttonMainMenu) })
def __init__(self, mainMenuContext, setContextFunc): BaseContext.__init__(self, setContextFunc) self._mainMenuContext = mainMenuContext fontObj = Font(None, 40) self._background = texturehandler.fillSurface( pygame.Surface(screenSize), random.choice(texturehandler.blocks), (64, 64)) self.addElements({ "lCaption": GuiLabel.createCentered(10, Font(None, 60), "Starting new Game"), "lSeed": GuiLabel.createCentered(280, fontObj, "Seed for the World Generator"), "tfSeed": GuiNumberTextfield(430, 325, SysFont("Monospace", 38, bold=True), width=220), "lHint": GuiLabel.createCentered(400, fontObj, "leave blank for a random seed", color=(200, 200, 200)), "bBack": GuiButton(240, 500, fontObj, "Back", width=285).connect(self.buttonBack), "bStartGame": GuiButton(555, 500, fontObj, "Start Game", width=285).connect(self.buttonStartGame) }) self._elements["tfSeed"].setFocused(True) # enable key repeats pygame.key.set_repeat(500, 50)
def __init__(self, seed, setContextFunc): BaseContext.__init__(self, setContextFunc) self.setWorld(World(seed)) # disable key repeats pygame.key.set_repeat()