コード例 #1
0
    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
        ]
コード例 #2
0
ファイル: Menu.py プロジェクト: AnisB/CosmicBeam
	def goIn(self):
		if self.cursor == 0:
			for l in self.levels:
				g = l(self.window)
				g.run()
		
		if self.cursor == 1:
			l = LevelSelect(self.window)
			l.run()
コード例 #3
0
    def __init__(self, root, state, window_width, window_height):
        self.root = root
        self.window_width = window_width
        self.window_height = window_height
        self.changing_window = False

        self.menu = Menu(state, root)
        self.level_select = LevelSelect(state, root)
        self.level = Level(state, root)

        self.menu.place(in_=root, x=0, y=0, relwidth=1, relheight=1)
        self.level_select.place(in_=root, x=0, y=0, relwidth=1, relheight=1)
        self.level.place(in_=root, x=0, y=0, relwidth=1, relheight=1)

        self._show_menu()
コード例 #4
0
class GameView:
    def __init__(self, root, state, window_width, window_height):
        self.root = root
        self.window_width = window_width
        self.window_height = window_height
        self.changing_window = False

        self.menu = Menu(state, root)
        self.level_select = LevelSelect(state, root)
        self.level = Level(state, root)

        self.menu.place(in_=root, x=0, y=0, relwidth=1, relheight=1)
        self.level_select.place(in_=root, x=0, y=0, relwidth=1, relheight=1)
        self.level.place(in_=root, x=0, y=0, relwidth=1, relheight=1)

        self._show_menu()

    def _show_menu(self):
        self.level.visible = False
        self.menu.show()

    def _show_level_select(self):
        self.level.visible = False
        self.level_select.show()

    def _redraw_level(self, state):
        self.level.update_and_show(state)

    def refresh_view(self, state):
        if state.page == MENU:
            self._show_menu()
        elif state.page == LEVEL_SELECT:
            self._show_level_select()
        elif state.page == LEVEL:
            self._redraw_level(state)
        self.root.after(REFRESH_DELAY, self.refresh_view, state)
コード例 #5
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"
コード例 #6
0
ファイル: Main.py プロジェクト: beccaelenzil/PA_DJ
i = 0
#class Main():
while mainLoop:

    #print "Doing main game loop"
    gameclock.tick(60)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            mainLoop = False

        #else:
    # I took this out of the event loop
    funcs = {
        "Start":startGame,
        "Quit":sys.exit
    }

    if current_state == "MENU":
        gameMenu = GameMenu(screen, funcs.keys(), funcs)
        gameMenu.run()
        current_state = startGame()
    elif current_state == "LEVELSELECT":
        levelSelect = LevelSelect(screen)
        levelSelect.run()
    elif current_state == "PLAY":
        theme.play()
        playScreen = Play.Play(screen)
        playScreen.run()
pygame.quit()