示例#1
0
    def shop_initial_dialog(self, centre_screen, tile_value):
        centre_screen.fill(BACKGROUND_COLOUR)

        button_rect = pg.Rect(0, 0, 240, 60)
        buy_button = Button(
            centre_screen,
            (centre_screen.get_width()/2, centre_screen.get_height()/2 - button_rect.height),
            "Buy", 20, rect=button_rect, pos_offset=(TILE_WIDTH, TILE_HEIGHT))
        sell_button = Button(
            centre_screen,
            (centre_screen.get_width()/2, centre_screen.get_height()/2),
            "Sell", 20, rect=button_rect, pos_offset=(TILE_WIDTH, TILE_HEIGHT))
        leave_button = Button(
            centre_screen, (centre_screen.get_width()/2, centre_screen.get_height()/2 + button_rect.height),
            "Leave", 20, rect=button_rect, pos_offset=(TILE_WIDTH, TILE_HEIGHT))
        buy_button.update()
        sell_button.update()
        leave_button.update()
        pg.display.update(centre_screen.get_rect(topleft=(TILE_WIDTH, TILE_HEIGHT)))

        while True:
            for event in pg.event.get():
                if event.type == pg.QUIT:
                    pg.quit()
                    sys.exit()

                buy_button.update_state(event)
                sell_button.update_state(event)
                leave_button.update_state(event)

            if buy_button.buttonPressed:
                DEBUG.log("Buy button pressed", level=2)
                centre_screen.fill(BACKGROUND_COLOUR)
                self.shop_action_buy(centre_screen, tile_value)
                break
            elif sell_button.buttonPressed:
                DEBUG.log("Sell button pressed", level=2)
                centre_screen.fill(BACKGROUND_COLOUR)
                self.shop_action_sell(centre_screen)
                break
            elif leave_button.buttonPressed:
                DEBUG.log("Leave button pressed", level=2)
                self.action_result = ACTION_RESULT_SHOP_LEAVE
                # escape recursion if leaving
                return

        # recursive process for buying/selling
        self.shop_initial_dialog(centre_screen, tile_value)
示例#2
0
i = 0
while i < 6000:
    i += 1
        
    screen.fill(BACKGROUND_COLOUR)
    events = pg.event.get()

    # Check for quit button
    for event in events:
        if event.type == pg.QUIT:
            pg.quit()
            sys.exit()

    # Initialize before starting game
    if startButton:
        startButton.update_state(event)
        startButton.update()
        if startButton.buttonPressed:
            del startButton
            startButton = None
    elif num_players_textbox:
        num_players_textbox.update(events)
        if not num_players_textbox.return_pressed:
            num_players_textbox.draw(screen)
        else:
            DEBUG.log("num_players_textbox returned", level=1)
            num_human_players = int(num_players_textbox.value)
            num_players_textbox = None

            # Initialize and start the main game engine
            game = Game(screen, num_human_players, 0)