Example #1
0
def levelSaveMenu():
    """
    Fait fonctionner le menu de sélection d'une sauvegarde.
    """
    goInBlack()
    levels = IO.getLevels("save")
    levelSelected = 0
    level = IO.loadSave(levels[0])
    game.initSaveLevel(level)
    moveRender(levels, levelSelected, IO.loadSave)

    while not evenement.event["game"] == 'return':
        evenement.compute()
        ui.logic(evenement.event["tk"])
        if evenement.event["game"] == "right":
            levelSelected = move(levelSelected, levels, 1, IO.loadSave)
        elif evenement.event["game"] == "left":
            levelSelected = move(levelSelected, levels, -1, IO.loadSave)
        elif evenement.event["game"] == "play":
            goInBlack()
            game.play(levels[levelSelected], "l")
            backInBlack(game.initSaveLevel, [levels[levelSelected]])
            moveRender(levels, levelSelected, IO.loadSave)
        game.updateTime()
        animation.update()
        ui.render(game.getFps())
        mise_a_jour()

    backInBlack(game.initPlayMenu)
Example #2
0
def levelSelectionMenu():
    """
    Fait fonctionner le menu de sélection d'un niveau enregistré.
    """
    goInBlack()
    levels = IO.getLevels("level")
    levelSelected = 0
    level = IO.loadLevel(level=levels[0])
    game.initSelectionLevel(level)
    moveRender(levels, levelSelected, IO.loadLevel)
    while not evenement.event["game"] == 'return':
        evenement.compute()
        ui.logic(evenement.event["tk"])
        if evenement.event["game"] == "right":
            levelSelected = move(levelSelected, levels, 1, IO.loadLevel)
        elif evenement.event["game"] == "left":
            levelSelected = move(levelSelected, levels, -1, IO.loadLevel)
        elif evenement.event["game"] == "play":
            goInBlack()
            game.play(levels[levelSelected], "s")
            backInBlack(game.initSelectionLevel, [levels[levelSelected]])
            moveRender(levels, levelSelected, IO.loadLevel)
        elif evenement.event["game"] == "edit":
            goInBlack()
            editor.editor(levels[levelSelected])
            backInBlack(game.initSelectionLevel, [levels[levelSelected]])
            moveRender(levels, levelSelected, IO.loadLevel)
        game.updateTime()
        animation.update()
        ui.render(game.getFps())
        mise_a_jour()
    backInBlack(game.initPlayMenu)
Example #3
0
def choicePlaystyleMenu():
    """
    Fait fonctionner le menu de sélection du mode de jeu.
    """
    while not evenement.event["game"] == 'return':
        evenement.compute()
        ui.logic(evenement.event["tk"])
        # home:play:selection
        if evenement.event["game"] == 'selection':
            levelSelectionMenu()
        # home:play:save
        if evenement.event["game"] == 'save':
            levelSaveMenu()
        # home:play:random
        if evenement.event["game"] == 'play':
            goInBlack()
            game.play(mode="r")
            backInBlack(game.initPlayMenu)

        game.updateTime()
        ui.render(game.getFps())
        mise_a_jour()
Example #4
0
def scoresMenu():
    scores = IO.loadScore()
    levels = [key for key in scores["s"]]
    selected = 0
    game.initScores(scores)
    while not evenement.event["game"] == 'return':
        evenement.compute()
        ui.logic(evenement.event["tk"])

        if evenement.event["game"] == "up":
            selected += 1
            for i in range(4):
                ui.setObject(
                    "ltext" + str(i + 1), {
                        "text":
                        levels[(selected + i) % len(levels)] + " - " +
                        str(scores["s"][levels[(selected + i) %
                                               len(levels)]][0]) + "\n\t" +
                        scores["s"][levels[(selected + i) % len(levels)]][1]
                    })
        elif evenement.event["game"] == "down":
            selected -= 1
            for i in range(4):
                ui.setObject(
                    "ltext" + str(i + 1), {
                        "text":
                        levels[(selected + i) % len(levels)] + " - " +
                        str(scores["s"][levels[(selected + i) %
                                               len(levels)]][0]) + "\n\t" +
                        scores["s"][levels[(selected + i) % len(levels)]][1]
                    })

        game.updateTime()
        animation.update()
        ui.render(game.getFps())
        mise_a_jour()
Example #5
0
    """
    goInBlack()
    back(*args)
    evenement.resetGameEvent()


if __name__ == '__main__':
    render.initWindow()
    # home
    game.initMenuUI()
    while not evenement.event["game"] == 'return':
        # ev=donne_evenement()
        # if ev[0]!='RAS':
        #     print(ev)
        evenement.compute()
        ui.logic(evenement.event["tk"])
        # home:play
        if evenement.event["game"] == 'play':
            goInBlack(game.initPlayMenu)
            choicePlaystyleMenu()
            backInBlack(game.initMenuUI)
        # home:editor
        elif evenement.event["game"] == 'editor':
            goInBlack()
            editor.editor()
            backInBlack(game.initMenuUI)
        elif evenement.event["game"] == 'score':
            goInBlack()
            scoresMenu()
            backInBlack(game.initMenuUI)
def editor(level=None):
    """
    Lance et fait fonctionner l'éditeur de niveau.
    :param list level: Niveau à charger
    """
    ui.reset()
    ui.setBackground("black")
    initEditorUI()
    blockMap=[
        ["W", "G"],
        [".", "B"],
        ["D", "X"],
        ["R", "E"],
        ]
    editorWidth = 20
    editorHeight = 12
    if level:
        # squaresMap=[]
        level=IO.loadLevel(level=level)
        ui.setObject("timeLeftTextField", {"text": str(level[0][0])})
        level=level[1:]
        ydiff=editorHeight-len(level)
        xdiff=editorWidth-len(level[0])
        for y in range(len(level)):
            level[y].extend(["." for x in range(xdiff)])
        level.extend([["." for y in range(editorWidth)] for y in range(ydiff)])
    else:
        level=[["." for x in range(editorWidth)] for y in range(editorHeight)]
    render.update(level, "editorCanvas")
    render.update(blockMap, "blockCanvas")
    onPressed=False
    while not evenement.event["game"] == 'return':
        evenement.compute()
        ui.logic(evenement.event["tk"])
        tkEvent=evenement.getTkEvent()
        # print(type(ui.objects["blockCanvas"]["selected"]))
        if ui.focus is None:
            if ui.exclusiveLayer is None:
                updateCursor(tkEvent, "editorCanvas", ui.objects["blockCanvas"]["squaresMap"][ui.objects["blockCanvas"]["selected"][0][1]][ui.objects["blockCanvas"]["selected"][0][0]], onPressed)
                updateCursor(tkEvent, "blockCanvas")
            # print(evenement.event["game"])
            if evenement.event["game"] == "reset":
                render.update([["." for x in range(editorWidth)] for y in range(editorHeight)], "editorCanvas")
                # ui.render(game.getFps())
                # continue
            elif evenement.event["game"] == "save":
                timer.factor = 0
                if level:
                    IO.save(ui.objects["editorCanvas"]["squaresMap"], level[1])
                else:
                    ui.newPrompt("Nom de la sauvegarde:", "Sauvegarder", success=lambda: IO.save(game.data, ui.objects["prompt_2"]["text"]), checker=IO.checkSaveName, anyway=lambda: timer.setFactor(1))
            if type_evenement(tkEvent)=="Deplacement":
                if "|" in str(tkEvent):
                    onPressed=True
                else:
                    onPressed=False

        game.updateTime()
        ui.render(game.getFps())
        mise_a_jour()
    ui.reset()
Example #7
0
def play(level=None, mode="r"):
    """
    Lance une partie.
    :param string level: Nom du niveau à charger
    :param string mode: Type de partie à jouer ("r": random "s": save "l":level)
    """
    global data
    ui.reset()
    ui.setBackground("black")
    initGameUI()
    initData()
    data["level"] = level
    data["mode"] = mode
    # data["origin"] = data["map"][1::]
    if level and mode=="s":
        IO.loadLevel(data, level)
    elif level and mode=="l":
        IO.loadSave(level, data)
    else: 
        IO.loadLevel(data)
    start(data)
    render.update(data["map"][1::], "gameCanvas")

    while True:
        evenement.compute(inGame=True)
        ui.logic(evenement.event["tk"])
        #direction = (0, 0)
        if ui.focus is None:
            timer.start("game")
            gameEvenement=evenement.event["game"]
            if handleEvenement(gameEvenement): 
                if gameEvenement=="return":
                    break
                continue
            
            # if evenement.event["game"] == "reset" or ui.evenement == "reset":
            #     continue

            # elif evenement.event["game"] == "move":
                

            # elif evenement.event["game"] == "save":
                
            #     #fileName = IO.save(data)
            #     continue

            # elif evenement.event["game"] == "load":
                
            #     continue

            # elif evenement.event["game"] == 'return':
            #     break
        # if evenement.event["game"] == "debug" or ui.evenement == "debug":
        #     debug = (False if debug else True)
        #     print("DEBUG ACTIVATED" if debug else "DEBUG DEACTIVATED")

        #     ui.evenement = None
        #     continue

        logic.updatePhysic(data)
        if data["fall"]["fallings"]:
            render.update(data["map"][1::], "gameCanvas")
        updateStats(data["time"]["remain"], (data["diamonds"]["owned"], int(data["map"][0][1])), data["score"])
        updateTime()
        data["time"]["remain"] = timer.getTimer("game", int, remain=True)
        #print(timer.timers["game"]["progression"])
        win = logic.status(data)
        logic.updateGameStatus()
        if win and data["mode"] == "s":
            break
        elif win:
            IO.loadLevel(data)
            start(data, keepScore=True)
            render.update(data["map"][1::], "gameCanvas")
        elif win==False:
            break
        ui.render(getFps())
        mise_a_jour()
    ui.reset()
    initMenuUI()