コード例 #1
0
 def target_search(self, event):
     SIZE = min(self.surface.get_size())
     path = 'images/target_search.png'
     icon_position = ((4*self.size[0]/10)-50, 35)
     button = Button(self.surface, icon_position, (SIZE, SIZE), path,str('target_search'))
     button.event_handler(self.position, icon_position, event)
     if button.pressed:
         action = str('target_search')
         self.ex.Primative(action)
         answer = inputbox.ask(self.screen, "Number of Drones")
コード例 #2
0
ファイル: main.py プロジェクト: Shubh1815/Path-Finder
    def toolkit_section(self):

        title = tk.Frame(self.toolkit)
        title.grid(row=0, column=0, columnspan=2, pady=10)

        Label(
            title,
            text="PATH-FINDER",
            size=24
        ).pack(fill=tk.X)

        Label(
            self.toolkit,
            text="Maze Generation",
            size=14
        ).grid(row=1, column=0, padx=10, pady=10, sticky='W')

        Button(
            self.toolkit,
            text="Generate Maze",
            command=lambda: self.grid.generate_maze(
                self.visualize_maze.get(), 
                self.perfect_maze.get() + 1
            )
        ).grid(row=2, column=0, padx=10, pady=5, sticky='WE')

        Checkbutton(
            self.toolkit,
            variable=self.visualize_maze,
            text="Visualize",
        ).grid(row=2, column=1, padx=10, pady=5, sticky='W')

        Button(
            self.toolkit,
            text="Clear Maze",
            command=self.grid.reset
        ).grid(row=3, column=0, padx=10,pady=5, sticky='WE')

        Checkbutton(
            self.toolkit,
            text="Perfect Maze\n(Only 1 soultion)",
            variable=self.perfect_maze,
        ).grid(row=3, column=1, padx=10, pady=5, sticky='W')

        Label(
            self.toolkit,
            text="Path Finding",
            size=14
        ).grid(row=5, column=0, padx=10, pady=10, sticky='W')

        Button(
            self.toolkit,
            text="Find Path",
            command=lambda: a_star(self.grid),
        ).grid(row=6, column=0, columnspan=2, padx=10,pady=5, sticky='WE')
コード例 #3
0
ファイル: thChoix.py プロジェクト: LaunoisRemy/ASAIOT
 def __init__(self):
     self.identif = 0  #false
     self.pause_cond = Condition()
     self.buttonV = Button.Button(3)
     self.buttonD = Button.Button(4)
     self.paused = False
     self.step = 0
     self.choice = False  #permet de savoir si l'utilisateur a choisi de poser (True) ou de prendre (False)
     self.categorie = 0  #numero de categorie
     self.id = 0  #id de l'aliment
     self.qte = 0  #quantite choisie par l'utilisateur
     self.stepdate = 1  #etape de la conception de la date de peremption (1 : jour, 2 : date, 3: annee)
     self.j = "1"  #jour par defaut
     self.m = "01"  #mois par defaut
     self.a = "2020"  #annee par defaut
コード例 #4
0
ファイル: Menu.py プロジェクト: pedrocarnevale/TicTacToeBot
    def moveToPlayer2(self):
        self.__id = 2

        for i in range(0, 3):
            self.__buttons[0][i].setIsClicked(False)

        self.__finishButton = Button("Start Game", gameConfig['width'] * 0.7,
                                     gameConfig['height'] * 0.9, (0, 100, 0),
                                     20, gameConfig['width'] * 0.25, 40)

        self.__playerName = ""
        if self.__playerChar == Char.X:
            self.__playerChar = Char.O
        else:
            self.__playerChar = Char.X
コード例 #5
0
    def __init__(self):
        """ 游戏初始化 """
        pygame.init()
        self.screen = pygame.display.set_mode(WIN_SIZE)
        pygame.display.set_caption("飞机大战")

        self.img_bg = pygame.image.load(IMG_BG)
        self.hero = Hero(self.screen)
        self.enemies = self.get_enemies(5)

        self.result = Result()

        self.btn_enter = [Button(BTN_ENTER1), Button(BTN_ENTER2)]

        self.font = pygame.font.Font(FONT, 45)
コード例 #6
0
ファイル: Menu.py プロジェクト: pedrocarnevale/TicTacToeBot
    def __init__(self, players, window, playerChar=Char.EMPTY):
        self.__buttons = [[[], [], []], [[], []]]
        self.__buttons[0][0] = Button("Person", gameConfig['width'] * 0.06,
                                      gameConfig['height'] * 0.4,
                                      (255, 128, 0), 30,
                                      gameConfig['width'] * 0.25, 60)
        self.__buttons[0][1] = Button("Random Bot", gameConfig['width'] * 0.37,
                                      gameConfig['height'] * 0.4,
                                      (128, 0, 128), 30,
                                      gameConfig['width'] * 0.25, 60)
        self.__buttons[0][2] = Button("Smart Bot", gameConfig['width'] * 0.68,
                                      gameConfig['height'] * 0.4,
                                      (128, 128, 128), 30,
                                      gameConfig['width'] * 0.25, 60)
        self.__buttons[1][0] = Button("X", gameConfig['width'] * 0.2,
                                      gameConfig['height'] * 0.6,
                                      fontsConfig['xColor'], 50, 150, 100)
        self.__buttons[1][1] = Button("O", gameConfig['width'] * 0.6,
                                      gameConfig['height'] * 0.6,
                                      fontsConfig['oColor'], 50, 150, 100)
        self.__finishButton = Button("Continue", gameConfig['width'] * 0.7,
                                     gameConfig['height'] * 0.9, (0, 100, 0),
                                     20, gameConfig['width'] * 0.25, 40)

        self.__nameRect = pygame.Rect(gameConfig['width'] * 0.25,
                                      gameConfig['height'] * 0.25,
                                      gameConfig['width'] * 0.5, 32)

        self.__id = 1
        self.__playerName = ""
        self.__playerChar = playerChar
        self.__players = players
        self.__running = True
        self.__window = window
コード例 #7
0
ファイル: new_hiscore.py プロジェクト: Desynchhh/Whack-A-Mole
    def __init__(self, screen: pygame.Surface, score: int):
        self.running = True
        self.bg = (0, 130, 0)
        self.screen_w = screen.get_width()
        self.screen_h = screen.get_height()

        # Buttons
        self.btn_w = 120
        self.btn_h = 50
        self.btn_ds_x = (self.screen_w - self.btn_w) // 3.3
        self.btn_s_x = (self.screen_w - self.btn_w) // 1.4
        self.btn_y = (self.screen_h - self.btn_h) // 2
        self.btn_dont_save = Button(self.btn_ds_x, self.btn_y, self.btn_w,
                                    self.btn_h, (200, 0, 0), (255, 0, 0),
                                    "Don't Save", self.close_hiscore)
        self.btn_save = Button(self.btn_s_x, self.btn_y, self.btn_w,
                               self.btn_h, (0, 0, 200), (0, 0, 255), 'Save',
                               self.close_hiscore)
        self.buttons = (self.btn_dont_save, self.btn_save)

        # Input Field
        self.field_w = 150
        self.field_h = 50
        self.field_x = (self.screen_w - self.field_w) // 2
        self.field_y = (self.screen_h - self.field_h) // 3
        self.initials_field = Input_Field(self.field_x, self.field_y,
                                          self.field_w, self.field_h,
                                          (255, 255, 255), (200, 200, 200))

        # Score Text
        self.score = score
        self.score_text = Text(self.screen_w // 3, self.screen_h // 1.7, 22,
                               f'Your score is {self.score}!')

        # Initials Text
        self.initials_text = Text(self.screen_w // 5, self.screen_h // 4.2, 18,
                                  'Enter your initials to save your score')

        self.drawables = (self.btn_dont_save, self.btn_save,
                          self.initials_field, self.score_text,
                          self.initials_text)
コード例 #8
0
 def __init__(self):
     self.b_buy_node = Button("Buy Place")
     self.b_build_detector = Button("Build Detector")
     self.b_next_turn = Button("Next Round")
     self.b_buy_node.setEnabled(False)
     self.b_build_detector.setEnabled(False)
     self.b_next_turn.setEnabled(False)
コード例 #9
0
    def __init__(self, state):
        level = getattr(world1, f"Level_{state['level'] + 1}")

        self.state = state
        self.player = Player(position=Vector(*level.player))

        self.platforms = Group()
        self.gems = Group()
        level_width = PS.PPU * (
            max(map(lambda p: p[0] + p[2], level.platforms)) + PS.BLOB_SIZE)
        self.blobs = HorizontalScrollingGroup(
            self.player, (GS.SCREEN_WIDTH, GS.SCREEN_HEIGHT),
            (level_width, GS.SCREEN_HEIGHT), PS.SCROLL_MARGIN * PS.PPU)

        for x, y, width in level.platforms:
            platform = Platform(width=width, position=Vector(x, y))
            self.blobs.add(platform)
            self.platforms.add(platform)
        for x, y, note, winner in level.gems:
            gem = Gem(note, winner=winner, position=Vector(x, y))
            self.blobs.add(gem)
            self.gems.add(gem)
            if winner:
                goal_path = os.path.join("sounds", "long", f"{note}.wav")
                self.goal_sound = pygame.mixer.Sound(goal_path)

        self.channels = {}

        self.greeting = TextBox(
            "Your task is to find the gem which emits a certain sound.\nYou "
            "can listen to the sound by clicking on this box. You can also "
            "listen to it during the game by clicking on the \"Goal\" button "
            "in the corner.\nClick outside the box to start.",
            bgcolor=PS.TEXT_BGCOLOR,
            max_size=(GS.SCREEN_WIDTH * 0.6, GS.SCREEN_HEIGHT * 0.6),
            style=PS.TEXT_STYLE)
        self.started = False

        self.sound_btn = Button("Target sound", Vector(50, 50), Vector(10, 5))
コード例 #10
0
ファイル: config.py プロジェクト: earharpm/2014_Base
    class ShooterConfig(object):
        motors = wpilib.Jaguar(3)
        
        shoot_button = Button(rightJoy, 1)
        manual_reset_button = Button(rightJoy, 4)

        low_shot_preset_button = Button(rightJoy, 8)
        high_shot_preset_button = Button(rightJoy, 7)

        reset_hall_effect = HallEffect(wpilib.DigitalInput(6))

        preset_hall_effect_counters = []

        low_shot_hall_effect_counter = wpilib.Counter()
        low_shot_hall_effect_counter.SetUpSource(7)
        low_shot_hall_effect_counter.SetUpSourceEdge(False, True)
        low_shot_hall_effect_counter.Start()        

        high_shot_hall_effect_counter = wpilib.Counter()
        high_shot_hall_effect_counter.SetUpSource(8)
        high_shot_hall_effect_counter.SetUpSourceEdge(False, True)
        high_shot_hall_effect_counter.Start()
コード例 #11
0
ファイル: config.py プロジェクト: earharpm/2014_Base
    class DriveConfig(object):
        left_motors = wpilib.Talon(1)
        right_motors = wpilib.Talon(2)

        left_encoder = wpilib.Encoder(2, 3)
        left_PID_encoder = DistanceEncoder(left_encoder)
        left_PID_controller = wpilib.PIDController(0, 0, 0, left_PID_encoder, left_motors)

        right_encoder = wpilib.Encoder(4, 5)
        right_PID_encoder = DistanceEncoder(right_encoder)
        right_PID_controller = wpilib.PIDController(0, 0, 0, right_PID_encoder, right_motors)
        
        robot_drive = DriveBase(left_motors, right_motors, True,
                                left_encoder, right_encoder,
                                left_PID_controller, right_PID_controller)

        #robot_drive = wpilib.RobotDrive(left_motors, right_motors)

        left_shifter = wpilib.DoubleSolenoid(1, 2)
        right_shifter = wpilib.DoubleSolenoid(3, 4)
        
        forward = wpilib.DoubleSolenoid.kForward
        reverse = wpilib.DoubleSolenoid.kReverse
        
        drive_joy = leftJoy

        align_button = Button(leftJoy, 6)

        front_left_photo_switch = wpilib.DigitalInput(14)
        front_right_photo_switch = wpilib.DigitalInput(12)
        
        back_left_photo_switch = wpilib.DigitalInput(13)
        back_right_photo_switch = wpilib.DigitalInput(11)

     
        # Buttons
        squared_drive_stick = Button(leftJoy, 1)
        shift_button = Button(leftJoy, 9)
コード例 #12
0
 def formation(self, event):
     SIZE = min(self.surface.get_size())
     path = 'images/formation.png'
     icon_position = ((3*self.size[0]/10) - 50, 35)
     button = Button(self.surface, icon_position, (SIZE, SIZE), path,str('formation'))
     button.event_handler(self.position, icon_position, event)
     if button.pressed:
         answer = inputbox.ask(self.screen, "Number of Drones")
         action = str('formation')
         self.ex.Primative(action)
         #print(pygame.mouse.get_pos())
         button.indication(self.surface, self.position, icon_position)
コード例 #13
0
ファイル: config.py プロジェクト: earharpm/2014_Base
    class PickupConfig(object):
        pickup_motor = wpilib.Talon(4)

        solenoid = wpilib.DoubleSolenoid(5, 6)

        # TODO: figure out if forward is pickup-up or pickup-down. 
        # Rename these variables once we know
        forward = wpilib.DoubleSolenoid.kForward
        reverse = wpilib.DoubleSolenoid.kReverse

        pickup_switch = Button(rightJoy, 3)
        motor_button = Button(rightJoy, 2)
        
        pickup_fast_preset = Button(rightJoy, 10)
        pickup_slow_preset = Button(rightJoy, 11)
        pass_slow_preset = Button(rightJoy, 12)
        pass_fast_preset = Button(rightJoy, 13)
コード例 #14
0
class NotePlatformerScene(Scene):
    def __init__(self, state):
        level = getattr(world1, f"Level_{state['level'] + 1}")

        self.state = state
        self.player = Player(position=Vector(*level.player))

        self.platforms = Group()
        self.gems = Group()
        level_width = PS.PPU * (
            max(map(lambda p: p[0] + p[2], level.platforms)) + PS.BLOB_SIZE)
        self.blobs = HorizontalScrollingGroup(
            self.player, (GS.SCREEN_WIDTH, GS.SCREEN_HEIGHT),
            (level_width, GS.SCREEN_HEIGHT), PS.SCROLL_MARGIN * PS.PPU)

        for x, y, width in level.platforms:
            platform = Platform(width=width, position=Vector(x, y))
            self.blobs.add(platform)
            self.platforms.add(platform)
        for x, y, note, winner in level.gems:
            gem = Gem(note, winner=winner, position=Vector(x, y))
            self.blobs.add(gem)
            self.gems.add(gem)
            if winner:
                goal_path = os.path.join("sounds", "long", f"{note}.wav")
                self.goal_sound = pygame.mixer.Sound(goal_path)

        self.channels = {}

        self.greeting = TextBox(
            "Your task is to find the gem which emits a certain sound.\nYou "
            "can listen to the sound by clicking on this box. You can also "
            "listen to it during the game by clicking on the \"Goal\" button "
            "in the corner.\nClick outside the box to start.",
            bgcolor=PS.TEXT_BGCOLOR,
            max_size=(GS.SCREEN_WIDTH * 0.6, GS.SCREEN_HEIGHT * 0.6),
            style=PS.TEXT_STYLE)
        self.started = False

        self.sound_btn = Button("Target sound", Vector(50, 50), Vector(10, 5))

    def update(self):
        if not self.started:
            return

        self.blobs.update()

        # Handle player-platform collisions.
        for platform in pygame.sprite.spritecollide(self.player,
                                                    self.platforms, False):
            self.player.collide(platform)

        if self.player.rect.bottom > GS.SCREEN_HEIGHT:
            self.quit(win=False)

        # Play sound near gems.
        for gem in self.gems:
            self.player.listen_to(gem)

        # Handle collisions with gems.
        for gem in pygame.sprite.spritecollide(self.player, self.gems, False):
            # End condition.
            self.quit(win=gem.winner)

    def handle_events(self, events):
        for event in events:
            # Handle interaction with greeting box.
            if not self.started:
                if event.type == pygame.MOUSEBUTTONUP:
                    pos = pygame.mouse.get_pos()
                    if self.greeting.rect.collidepoint(pos):
                        self.goal_sound.play()
                    else:
                        self.started = True
                continue

            # Handle navigation key presses.
            if event.type == pygame.KEYDOWN:
                if event.key in PS.LEFT_KEYS:
                    self.player.go_left()
                elif event.key in PS.RIGHT_KEYS:
                    self.player.go_right()
                elif event.key in PS.JUMP_KEYS:
                    if self.player.can_jump(self.platforms):
                        self.player.jump()
            elif event.type == pygame.KEYUP:
                if event.key in PS.LEFT_KEYS:
                    self.player.stop_left()
                elif event.key in PS.RIGHT_KEYS:
                    self.player.stop_right()
                elif event.key in PS.JUMP_KEYS:
                    self.player.stop_jump()
            # Handle clicking sound button.
            elif event.type == pygame.MOUSEBUTTONUP:
                if self.sound_btn.rect.collidepoint(pygame.mouse.get_pos()):
                    self.goal_sound.play()

    def render(self, screen):
        screen.fill(PS.BG_COLOR)
        self.blobs.draw(screen)
        self.sound_btn.draw(screen)
        if not self.started:
            overlay = Surface(screen.get_size(), pygame.SRCALPHA)
            overlay.fill(PS.OVERLAY_COLOR)
            screen.blit(overlay, (0, 0))
            self.greeting.draw(screen)

    def quit(self, win):
        for gem in self.gems:
            gem.sound.stop()
        if win:
            self.state["level_progress"][self.state["world"]] = (
                self.state["level"] + 1)
        next_scene = menus.WinScene if win else menus.LoseScene
        self.manager.go_to(next_scene(self.state))
コード例 #15
0
ファイル: config.py プロジェクト: earharpm/2014_Base
 class UtilConfig(object):
     reload_code_button = Button(leftJoy, 8)
     compressor = wpilib.Compressor(1, 1)
コード例 #16
0
ファイル: Menu.py プロジェクト: pedrocarnevale/TicTacToeBot
class Menu:
    def __init__(self, players, window, playerChar=Char.EMPTY):
        self.__buttons = [[[], [], []], [[], []]]
        self.__buttons[0][0] = Button("Person", gameConfig['width'] * 0.06,
                                      gameConfig['height'] * 0.4,
                                      (255, 128, 0), 30,
                                      gameConfig['width'] * 0.25, 60)
        self.__buttons[0][1] = Button("Random Bot", gameConfig['width'] * 0.37,
                                      gameConfig['height'] * 0.4,
                                      (128, 0, 128), 30,
                                      gameConfig['width'] * 0.25, 60)
        self.__buttons[0][2] = Button("Smart Bot", gameConfig['width'] * 0.68,
                                      gameConfig['height'] * 0.4,
                                      (128, 128, 128), 30,
                                      gameConfig['width'] * 0.25, 60)
        self.__buttons[1][0] = Button("X", gameConfig['width'] * 0.2,
                                      gameConfig['height'] * 0.6,
                                      fontsConfig['xColor'], 50, 150, 100)
        self.__buttons[1][1] = Button("O", gameConfig['width'] * 0.6,
                                      gameConfig['height'] * 0.6,
                                      fontsConfig['oColor'], 50, 150, 100)
        self.__finishButton = Button("Continue", gameConfig['width'] * 0.7,
                                     gameConfig['height'] * 0.9, (0, 100, 0),
                                     20, gameConfig['width'] * 0.25, 40)

        self.__nameRect = pygame.Rect(gameConfig['width'] * 0.25,
                                      gameConfig['height'] * 0.25,
                                      gameConfig['width'] * 0.5, 32)

        self.__id = 1
        self.__playerName = ""
        self.__playerChar = playerChar
        self.__players = players
        self.__running = True
        self.__window = window

    def update(self):
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                sys.exit()

            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_BACKSPACE:
                    self.__playerName = self.__playerName[0:-1]
                else:
                    if len(self.__playerName
                           ) <= 10 and event.key != pygame.K_RETURN:
                        self.__playerName += event.unicode

            if event.type == pygame.MOUSEBUTTONDOWN and pygame.mouse.get_pressed(
            )[0]:
                pos = pygame.mouse.get_pos()

                if self.__id == 1:
                    for i in range(0, 2):
                        if self.__buttons[1][i].click(pos):
                            self.__buttons[1][(i + 1) % 2].setIsClicked(False)
                            self.__buttons[1][i].setIsClicked(True)

                for i in range(0, 3):
                    if self.__buttons[0][i].click(pos):
                        for button in self.__buttons[0]:
                            button.setIsClicked(False)
                        self.__buttons[0][i].setIsClicked(True)

                if self.__finishButton.click(pos):
                    self.createPlayer()

    def draw(self):
        self.__window.fill(gameConfig['screenColor'])

        #Draw title
        welcomeText = fontsConfig['bigFont'].render("Welcome to Tic Tac Toe!",
                                                    True,
                                                    fontsConfig['titleColor'])
        playerText = fontsConfig['mediumFont'].render(
            "Build Player " + str(self.__id) + ":", True,
            fontsConfig['textColor'])
        self.__window.blit(welcomeText, (gameConfig['width'] * 0.16, 0))
        self.__window.blit(
            playerText,
            (gameConfig['width'] * 0.1, gameConfig['height'] * 0.1))

        # Draw name
        nameText = fontsConfig['mediumFont'].render("Name:", 1,
                                                    fontsConfig['titleColor'])
        self.__window.blit(
            nameText, (gameConfig['width'] * 0.2, gameConfig['height'] * 0.17))
        texto = fontsConfig['smallFont'].render(self.__playerName, 1,
                                                (4, 15, 133))

        pygame.draw.rect(self.__window, (255, 255, 255), self.__nameRect)
        self.__window.blit(texto,
                           (self.__nameRect.x + 5, self.__nameRect.y + 5))

        #DrawButtons
        if self.__id == 1:
            for i in range(0, 2):
                self.__buttons[1][i].draw(self.__window)

        for i in range(0, 3):
            self.__buttons[0][i].draw(self.__window)

        self.__finishButton.draw(self.__window)

        pygame.display.update()

    def createPlayer(self):
        if self.__id == 1:
            if self.__buttons[1][0].getIsClicked():
                self.__playerChar = Char.X
            elif self.__buttons[1][1].getIsClicked():
                self.__playerChar = Char.O
            else:
                return

        if self.__buttons[0][0].getIsClicked():
            self.__players.append(Player(self.__playerName, self.__playerChar))
        elif self.__buttons[0][1].getIsClicked():
            self.__players.append(
                TicTacToeBot(self.__playerName, self.__playerChar,
                             BotType.RANDOM))
        elif self.__buttons[0][2].getIsClicked():
            self.__players.append(
                TicTacToeBot(self.__playerName, self.__playerChar,
                             BotType.MINIMAX))
        else:
            return

        if self.__id == 1:
            self.moveToPlayer2()
        else:
            self.__running = False

    def moveToPlayer2(self):
        self.__id = 2

        for i in range(0, 3):
            self.__buttons[0][i].setIsClicked(False)

        self.__finishButton = Button("Start Game", gameConfig['width'] * 0.7,
                                     gameConfig['height'] * 0.9, (0, 100, 0),
                                     20, gameConfig['width'] * 0.25, 40)

        self.__playerName = ""
        if self.__playerChar == Char.X:
            self.__playerChar = Char.O
        else:
            self.__playerChar = Char.X

    def isWindowRunning(self):
        return self.__running

    def getPlayers(self):
        return self.__players
コード例 #17
0
 def __init__(self, row, col, strn, donation):
     Button.__init__(self, row, col, strn)
     self.donation = donation
コード例 #18
0
        quit()

    def redraw_screen(self):
        self.screen.fill(self.bg)
        for button in self.buttons:
            button.draw(self.screen)
        pygame.display.update()


if __name__ == '__main__':
    game = Game()
    button_w = 100
    button_h = 50
    game.buttons.append(
        Button((game.screen_w - button_w) // 2,
               (game.screen_h - button_h) // 3, button_w, button_h,
               (200, 0, 0), (255, 0, 0), 'Play', run_game, game.screen))
    game.buttons.append(
        Button((game.screen_w - button_w) // 2,
               (game.screen_h - button_h) // 1.5, button_w, button_h,
               (200, 0, 0), (255, 0, 0), 'Quit', game.quit_game))
    # Temp
    game.buttons.append(
        Button((game.screen_w - button_w) // 2,
               (game.screen_h - button_h) // 2, button_w, button_h,
               (200, 0, 0), (255, 0, 0), 'Hiscores', run_hiscore, game.screen,
               0))

    while game.running:
        playing = True
        while playing:
コード例 #19
0
 def __init__(self, row, col, strn, location):
     Button.__init__(self, row, col, strn)
     self.location = location
コード例 #20
0
class Controller():
    def __init__(self):
        self.b_buy_node = Button("Buy Place")
        self.b_build_detector = Button("Build Detector")
        self.b_next_turn = Button("Next Round")
        self.b_buy_node.setEnabled(False)
        self.b_build_detector.setEnabled(False)
        self.b_next_turn.setEnabled(False)

    def set_buying_node(self):
        self.b_buy_node.setEnabled(False)
        self.b_build_detector.setEnabled(False)
        self.b_next_turn.setEnabled(False)

    def checkout_my_turn(self, status):
        self.b_buy_node.setEnabled(status)
        self.b_build_detector.setEnabled(status)
        self.b_next_turn.setEnabled(status)

    def free(self):
        self.b_buy_node.setEnabled(True)
        self.b_build_detector.setEnabled(True)
        self.b_next_turn.setEnabled(True)
コード例 #21
0
    def menu_page(self):
        bg = pg.image.load('./assets/bg.jpg')
        bg = pg.transform.scale(bg, (self.win_width, self.win_height))

        new_game_button = Button('NEW GAME', (100, 150, 250, 50),
                                 self.game_page)
        new_game_button.config(hover=(25, 25, 25))

        play_online_button = Button('PLAY ONLINE', (100, 225, 250, 50),
                                    lambda: self.game_page(online=True))
        play_online_button.config(hover=(25, 25, 25))

        quit_game_button = Button('QUIT', (100, 300, 250, 50), self.quit)
        quit_game_button.config(hover=(25, 25, 25))

        while True:

            self.win.blit(bg, (0, 0))

            new_game_button.draw(self.win)
            play_online_button.draw(self.win)
            quit_game_button.draw(self.win)

            for event in pg.event.get():
                if event.type == pg.QUIT:
                    self.quit()

                if event.type == pg.MOUSEBUTTONDOWN:
                    new_game_button.collide(event.pos)
                    play_online_button.collide(event.pos)
                    quit_game_button.collide(event.pos)

            mouse = pg.mouse.get_pos()

            new_game_button.mouseover(self.win, mouse)
            play_online_button.mouseover(self.win, mouse)
            quit_game_button.mouseover(self.win, mouse)

            pg.display.update()