Esempio n. 1
0
    def Display(self):
        bg = loadImage("bg3.jpg")
        background(bg)

        # Background art
        fill(105)
        rect(253, 403, 400, 465, 40)

        fill(133, 129, 118)
        rect(250, 400, 400, 465, 40)

        fill(255)
        rect(250, 400, 385, 450, 30)

        fill(227, 227, 227)
        rect(250, 400, 370, 435, 20)

        fill(105)
        rect(250, 175, 307, 107, 20)

        fill(0)
        rect(250, 175, 300, 100, 15)

        for Button in self.ButtonsList:
            Button.Display()

        fill(255)
        text('Main Menu', 250, 175)
Esempio n. 2
0
 def Display(self):
     fill(0,0,0,200);
     rect(600,20,1200,3000) 
 
     for Button in self.ButtonsList:
         Button.Display()
             
     fill(255)
     text('Game Over', 250, 40)
Esempio n. 3
0
class GameManager():
    def __init__(self, screenWidth, screenHeight, board1X, board1Y, board1Z,
                 board2X, board2Y, board2Z, countersX, countersY, countersZ,
                 timerX, timerY, timerZ, arcadeLevels, gameLevels):

        self.currentScene = "menu"
        self.arcadeLevels = arcadeLevels
        self.currentLevel = 0
        self.gameLevels = gameLevels

        self.BackButton = Button(430, 40, 50, 110, "Back", "menu", 30)
        self.playerBoard = Board(board1X, board1Y, board1Z)
        self.refBoard = Board(board2X, board2Y, board2Z)
        self.MoveCounter = MoveCounter(countersX, countersY, countersZ)
        self.Timer = Timer(timerX, timerY, timerZ)
        # TODO: After updating the MoveCounter, add a second counter for the MAX moves (or target moves)
        self.LevelGenerator = LevelGenerator(board2X, board2Y, board2Z)

        self.mainMenu = MainMenu(screenWidth / 2, screenHeight / 2, 50, 50)
        self.levelSelectMenu = LevelSelect(screenWidth / 2, screenHeight / 2,
                                           50, 50, self.gameLevels)
        self.levelCompleteMenu = LevelComplete(screenWidth / 2,
                                               screenHeight / 2, 50, 50)
        self.arcadeOverMenu = ArcadeOver(screenWidth / 2, screenHeight / 2, 50,
                                         50)

        self.resetList = [
            self.playerBoard, self.refBoard, self.MoveCounter,
            self.LevelGenerator
        ]

    def Click(self, x, y):
        if "level" in self.currentScene:

            clicked = self.BackButton.IsIn(x, y)
            if clicked:
                self.ChangeScene(self.BackButton.Value)
                return

            squareX, squareY = self.playerBoard.GetSquare(x, y)

            if squareX != -1:
                self.playerBoard.Click(squareX, squareY)
                self.MoveCounter.Add()

                if self.CheckWin():

                    if "arcade" in self.currentScene:
                        self.currentLevel += 1
                        self.ChangeScene("level arcade")
                    else:
                        self.ChangeScene("complete")

        elif self.currentScene == "menu":
            button = self.mainMenu.GetButton(x, y)
            if button is not None:
                self.ChangeScene(button.Value)

        elif self.currentScene == "select menu":
            button = self.levelSelectMenu.GetButton(x, y)
            if button is not None:
                self.ChangeScene(button.Value)

        elif self.currentScene == "complete":
            button = self.levelCompleteMenu.GetButton(x, y)
            if button is not None:
                if button.Value == "next level":
                    self.currentLevel += 1
                    self.ChangeScene(
                        str(self.arcadeLevels[self.currentLevel]) + " level")

                else:
                    self.ChangeScene(button.Value)

        elif self.currentScene == "arcade complete":
            button = self.arcadeOverMenu.GetButton(x, y)
            if button is not None:
                self.currentLevel = 0
                self.ChangeScene(button.Value)

        #I need to add a value to the button which makes it go to next level
        # IF we clicked on "next level" then:
        #     Check what the current level is (self.currentLevel), and increase it by 1.
        #     Change level to that -> self.ChangeScene("2.2 level")
        elif self.currentScene == "settings":
            pass

        else:
            self.currentScene = "menu"

    def ChangeScene(self, newScene):
        if "complete" not in newScene:
            for object in self.resetList:
                object.Reset()

        else:
            self.Timer.Pause()
        if "level" in newScene:

            if "arcade" in newScene:
                self.GenerateLevel(int(self.arcadeLevels[self.currentLevel]))
            else:
                if newScene is "next level":
                    self.currentLevel += 1
                self.GenerateLevel(int(gameLevels[self.currentLevel][0]))
            #change generate level to my code inside generate level + make an actual input

        self.currentScene = newScene

    def CheckWin(self):
        if self.playerBoard.Equals(
                self.refBoard):  #Impliment Equals check in board
            return True
        else:
            return False

    def Reset(self):
        self.MoveCounter.Reset()
        self.playerBoard.Reset()
        self.Timer.Increment(self.arcadeLevels[self.currentLevel] * 5)

    def GenerateLevel(self, moves):
        self.Reset()
        self.refBoard = self.LevelGenerator.GenerateLevel(moves)

    def Display(self):
        if "level" in self.currentScene:
            self.playerBoard.Display()
            self.refBoard.Display()
            self.MoveCounter.Display()
            self.Timer.Display()
            self.BackButton.Display()
            if self.Timer.OutofTime():
                self.ChangeScene("arcade complete")

        elif self.currentScene == "arcade complete":
            self.playerBoard.Display()
            self.refBoard.Display()
            self.MoveCounter.Display()
            self.Timer.Display()
            self.arcadeOverMenu.Display()

        elif self.currentScene == "menu":
            self.mainMenu.Display()

        elif self.currentScene == "select menu":
            self.levelSelectMenu.Display()

        elif self.currentScene == "complete":
            self.playerBoard.Display()
            self.refBoard.Display()
            self.MoveCounter.Display()
            self.Timer.Display()
            # Task 3: Gray out what is behind it Look at processing docs,
            self.levelCompleteMenu.Display()

        elif self.currentScene == "settings":
            pass

        else:
            self.currentScene = "menu"
Esempio n. 4
0
    def Display(self):
        fill(0, 0, 0, 200)
        rect(600, 20, 1200, 3000)

        for Button in self.ButtonsList:
            Button.Display()
Esempio n. 5
0
    def Display(self):
        for Button in self.ButtonsList:
            Button.Display()

        fill(255)
        text('Select Level', 250, 40)