コード例 #1
0
class InstruView(arcade.View):
    def __init__(self, card, personagem):
        super().__init__()
        self.ui_manager = UIManager()
        self.controlador = controller.Controller()
        self.card = card
        self.personagem = personagem

    def on_draw(self):
        arcade.start_render()
        self.ui_manager.purge_ui_elements()
        y_slot = self.window.height // 4
        left_column_x = self.window.width // 2
        backgound_instru = arcade.load_texture('assets/instruções.jpg')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_instru)

    def on_mouse_press(self, _x, _y, _button, _modifiers):
        if self.card != None:
            choice_view = self.controlador.multi_player(
                'assets/blue', 'assets/yellow')
            choice_view.setup(1)
            self.window.show_view(choice_view)
        else:
            if self.personagem == 1:
                choice_view = self.controlador.single_player('assets/yellow')
                choice_view.setup(1)
                self.window.show_view(choice_view)
            else:
                choice_view = self.controlador.single_player('assets/blue')
                choice_view.setup(1)
                self.window.show_view(choice_view)
コード例 #2
0
class MyView(arcade.View):
    def __init__(self, window: arcade.Window):
        super().__init__()

        self.window = window
        self.ui_manager = UIManager(window)

    def on_draw(self):
        arcade.start_render()

    def on_show_view(self):
        arcade.set_background_color(arcade.color.BLACK)
        self.ui_manager.purge_ui_elements()

        button_normal = arcade.load_texture(
            ':resources:gui_basic_assets/red_button_normal.png')
        hovered_texture = arcade.load_texture(
            ':resources:gui_basic_assets/red_button_hover.png')
        pressed_texture = arcade.load_texture(
            ':resources:gui_basic_assets/red_button_press.png')
        self.ui_manager.add_ui_element(
            arcade.gui.UIImageButton(
                center_x=self.window.width // 2,
                center_y=window.height // 2,
                normal_texture=button_normal,
                hover_texture=hovered_texture,
                press_texture=pressed_texture,
                text='UIImageButton',
            ))
コード例 #3
0
class FinishView(arcade.View):
    """ View to show instructions """
    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()
        self.controlador = controller.Controller()

    def on_show(self):
        """ This is run once when we switch to this view """
        arcade.set_background_color(arcade.color.BLEU_DE_FRANCE)

        # Reset the viewport, necessary if we have a scrolling game and we need
        # to reset the viewport back to the start so we can see what we draw.
        arcade.set_viewport(0, self.controlador.SCREEN_WIDTH - 1, 0,
                            self.controlador.SCREEN_HEIGHT - 1)

    def on_draw(self):
        """ Draw this view """
        arcade.start_render()
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()
        backgound_menu = arcade.load_texture('assets/fim_de_jogo.jpg')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_menu)

        self.ui_manager.purge_ui_elements()

    def on_mouse_press(self, _x, _y, _button, _modifiers):
        self.window.show_view(self.controlador.init_view())
コード例 #4
0
class MyView(arcade.View):
    def __init__(self, window: arcade.Window):
        super().__init__()

        self.window = window
        self.ui_manager = UIManager(window)

    def on_draw(self):
        arcade.start_render()

    def on_show_view(self):
        arcade.set_background_color(arcade.color.BLACK)
        self.ui_manager.purge_ui_elements()

        self.ui_manager.add_ui_element(
            UIFlatButton('Hello world',
                         center_x=200,
                         center_y=self.window.height // 2,
                         width=200,
                         height=40))

        self.ui_manager.add_ui_element(
            UIGhostFlatButton('Hello world',
                              center_x=600,
                              center_y=self.window.height // 2,
                              width=200,
                              height=40))

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()
コード例 #5
0
class LevelMenu(arcade.View):
    def __init__(self, window, level_manager):
        super().__init__()

        self.window = window

        self.ui_manager = UIManager(window)
        self.level_manager = level_manager

    def setup(self):
        arcade.set_background_color(arcade.color.BLACK)
        for x, level in enumerate(generator_data.level_list):
            level_button = LevelButton(
                level, self.window, self.ui_manager, self.level_manager,
                f'Level {level.lvl_id + 1}:\n {level.lvl_description}',
                175 + (x % 6) * 250, 700 - (150 * (x // 6)), 200, 100)
            level_button.set_style_attrs(font_color=arcade.color.WHITE,
                                         font_color_hover=arcade.color.RED,
                                         font_color_press=arcade.color.WHITE,
                                         bg_color=arcade.color.BLACK,
                                         border_color=arcade.color.RED,
                                         border_color_hover=arcade.color.WHITE,
                                         border_color_press=arcade.color.WHITE)
            self.ui_manager.add_ui_element(level_button)

    def on_show_view(self):
        self.setup()

    def on_draw(self):
        arcade.start_render()

    def on_key_press(self, symbol: int, modifiers: int):
        if symbol == arcade.key.ESCAPE:
            self.ui_manager.purge_ui_elements()
            self.window.show_view(MainMenu(self.window))
コード例 #6
0
class CardView(arcade.View):
    def __init__(self, personagem):
        super().__init__()
        self.ui_manager = UIManager()
        self.controlador = controller.Controller()
        self.personagem = personagem

    def on_show(self):
        """ This is run once when we switch to this view """
        arcade.set_background_color(arcade.color.BLEU_DE_FRANCE)

        # Reset the viewport, necessary if we have a scrolling game and we need
        # to reset the viewport back to the start so we can see what we draw.
        arcade.set_viewport(0, self.controlador.SCREEN_WIDTH - 1, 0,
                            self.controlador.SCREEN_HEIGHT - 1)

    def on_draw(self):
        arcade.start_render()
        self.ui_manager.purge_ui_elements()
        y_slot = self.window.height // 4
        left_column_x = self.window.width // 2
        backgound_cards = arcade.load_texture('assets/cartas_single.jpg')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_cards)

    def on_mouse_press(self, _x, _y, _button, _modifiers):
        single = self.controlador.single_player(self.personagem)
        single.setup(1)
        self.window.show_view(single)
コード例 #7
0
class MyView(arcade.View):
    def __init__(self, window: arcade.Window):
        super().__init__()

        self.window = window
        self.ui_manager = UIManager(window)

    def on_draw(self):
        arcade.start_render()
        arcade.set_background_color(arcade.color.BLACK)

    def on_show_view(self):
        print('on_show_view')
        self.setup()

    def setup(self):
        self.ui_manager.purge_ui_elements()

        self.ui_manager.add_ui_element(
            UILabel(
                text='Username:'******'username')
        self.ui_manager.add_ui_element(input_box)

        submit_button = UIFlatButton(text='Login',
                                     center_x=650,
                                     center_y=self.window.height // 2,
                                     width=200,
                                     height=40,
                                     id='submit_button')
        self.ui_manager.add_ui_element(submit_button)

        self.ui_manager.add_ui_element(
            UILabel(text='',
                    center_x=self.window.width // 2,
                    center_y=self.window.height // 2 - 100,
                    width=600,
                    height=40,
                    id='login_message'))

        @input_box.event('on_enter')
        @submit_button.event('on_click')
        def submit():
            username_input = cast(UIInputBox,
                                  self.ui_manager.find_by_id('username'))
            username = username_input.text

            login_message: UILabel = cast(
                UILabel, self.ui_manager.find_by_id('login_message'))
            login_message.text = f'Welcome {username}, you are my first player.'
コード例 #8
0
class MyView(arcade.View):
    """ Main program view """
    def __init__(self):
        """ Set up this view """
        super().__init__()

        self.ui_manager = UIManager()

    def setup(self):
        """ Setup the view """
        self.ui_manager.purge_ui_elements()
        flat = UIFlatButton('Hello world',
                            center_x=200,
                            center_y=self.window.height // 2,
                            width=200,
                            height=40)
        flat.set_style_attrs(font_color=arcade.color.WHITE,
                             font_color_hover=arcade.color.WHITE,
                             font_color_press=arcade.color.WHITE,
                             bg_color=(51, 139, 57),
                             bg_color_hover=(51, 139, 57),
                             bg_color_press=(28, 71, 32),
                             border_color=(51, 139, 57),
                             border_color_hover=arcade.color.WHITE,
                             border_color_press=arcade.color.WHITE)
        self.ui_manager.add_ui_element(flat)

        # creates a new class, which will match the id
        UIStyle.default_style().set_class_attrs(
            'right_button',
            font_color=arcade.color.WHITE,
            font_color_hover=arcade.color.WHITE,
            font_color_press=arcade.color.WHITE,
            bg_color=(135, 21, 25),
            bg_color_hover=(135, 21, 25),
            bg_color_press=(122, 21, 24),
            border_color=(135, 21, 25),
            border_color_hover=arcade.color.WHITE,
            border_color_press=arcade.color.WHITE)
        self.ui_manager.add_ui_element(
            UIGhostFlatButton('Hello world',
                              center_x=600,
                              center_y=self.window.height // 2,
                              width=200,
                              height=40,
                              id='right_button'))

    def on_draw(self):
        """ Draw this view """
        arcade.start_render()
        arcade.set_background_color(arcade.color.BLACK)

    def on_show_view(self):
        """ Show this view """
        self.setup()

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()
コード例 #9
0
class GameView(arcade.View):

    def __init__(self):
        global score

        super().__init__()
        self.ui_manager = UIManager()
        self.window.set_mouse_visible(True)

        arcade.set_background_color(arcade.color.RED)
        score = 0
        self.score_text = None

    def setup(self):
        self.ui_manager.purge_ui_elements()

        y_slot = self.window.height // 4
        left_column_x = self.window.width // 4
        right_column_x = 3 * self.window.width // 4

        ui_input_box = arcade.gui.UIInputBox(
            center_x=left_column_x,
            center_y=y_slot * 2,
            width=300
        )
        button = MyFlatButton(
            'UPGRADE',
            center_x=right_column_x,
            center_y=y_slot * 1,
            width=250,
            # height=20
        )
        self.ui_manager.add_ui_element(button)

    def on_draw(self):
        global score
        arcade.start_render()

        global multiplier

        output = f"Score: {score}"
        arcade.draw_text(output, 10, 20, arcade.color.WHITE, 14)

    def on_show_view(self):
        self.setup()

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()

    def on_mouse_press(self, x, y, button, modifiers):
        global score
        global multiplier

        arcade.set_background_color([random.randrange(0, 255), random.randrange(0, 255), random.randrange(0, 255)])

        score += multiplier
コード例 #10
0
class GameWon(arcade.View):
    def __init__(self, game_view):
        super().__init__()
        self.ui_manager = UIManager()
        self.game_view = game_view

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()

    def on_show(self):
        arcade.set_background_color(arcade.csscolor.BLACK)

        arcade.set_viewport(0, SCREEN_WIDTH - 1, 0, SCREEN_HEIGHT - 1)

    def on_show_view(self):
        """ Called once when view is activated. """
        y_slot = self.window.height // 4
        left_column_x = self.window.width // 4
        right_column_x = 3 * self.window.width // 4
        print("Setup")
        self.ui_manager.purge_ui_elements()

        # Button for level 2
        button = MyFlatButton(app=self,
                              text='Level select',
                              center_x=475,
                              center_y=y_slot * 1,
                              width=250,
                              height=100)
        button.set_style_attrs(
            font_color=arcade.color.WHITE,
            font_color_hover=arcade.color.WHITE,
            font_color_press=arcade.color.BLACK,
            bg_color=(169, 169, 169),
            bg_color_hover=arcade.color.BLIZZARD_BLUE,
            bg_color_press=arcade.color.WHITE,
            border_color=arcade.color.BLACK,
        )
        button.add_event_listener(self.level_select)
        self.ui_manager.add_ui_element(button)

    def on_draw(self):
        arcade.start_render()
        arcade.draw_text("Level Complete!",
                         275,
                         450,
                         arcade.color.BLUE,
                         font_size=50)

    def level_select(self):
        new_view = level_select.LevelSelect(self.game_view)
        self.window.show_view(new_view)
コード例 #11
0
class InitView(arcade.View):
    """ View to show instructions """
    def __init__(self):
        super().__init__()

        self.ui_manager = UIManager()
        self.controlador = controller.Controller()

    def on_show(self):
        """ This is run once when we switch to this view """
        arcade.set_background_color(arcade.csscolor.LIGHT_GOLDENROD_YELLOW)

        # Reset the viewport, necessary if we have a scrolling game and we need
        # to reset the viewport back to the start so we can see what we draw.
        arcade.set_viewport(0, self.controlador.SCREEN_WIDTH - 1, 0,
                            self.controlador.SCREEN_HEIGHT - 1)

    def on_draw(self):
        """ Draw this view """
        arcade.start_render()
        arcade.draw_text("PyCharmers",
                         self.controlador.SCREEN_WIDTH / 2,
                         self.controlador.SCREEN_HEIGHT / 2,
                         arcade.color.BEAU_BLUE,
                         font_size=50,
                         anchor_x="center")
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()

        y_slot = self.window.height // 4
        left_column_x = self.window.width // 2
        backgound_menu = arcade.load_texture('assets/menu.png')
        button_normal = arcade.load_texture('assets/iconn.png')
        hovered_texture = arcade.load_texture('assets/iconn.png')
        pressed_texture = arcade.load_texture('assets/iconn.png')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_menu)
        button = arcade.gui.UIImageButton(center_x=left_column_x,
                                          center_y=y_slot * 1,
                                          normal_texture=button_normal,
                                          hover_texture=hovered_texture,
                                          press_texture=pressed_texture,
                                          text='')
        self.ui_manager.add_ui_element(button)

    def on_mouse_press(self, _x, _y, _button, _modifiers):
        """ If the user presses the mouse button, start the game. """
        self.ui_manager.purge_ui_elements()
        choice_view = self.controlador.choice_view()
        self.window.show_view(choice_view)
コード例 #12
0
class GameOver(arcade.View):
    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()

    def on_show(self):
        self.setup()
        arcade.set_background_color(arcade.color.BLACK)
    
    def setup(self):
        #resets the viewport otherwise the button hitbox may not be accurate
        self.window.set_viewport(0, 1000, 0, 650)
        #Set the mouse to be visible again
        self.window.set_mouse_visible(visible = True)
        #Reset all the gui element every time the setup is called to avoid misshandled ui elements
        self.ui_manager.purge_ui_elements()

        #initiate the sprite list
        self.decor_list = arcade.SpriteList()

        #Loads the texture
        decor = arcade.Sprite("Assets/UiStuff/GameOverSword.png")
        restart_button_normal = arcade.load_texture("Assets/UiStuff/Restart0.png")
        restart_button_hovered = arcade.load_texture("Assets/UiStuff/Restart1.png")
        restart_button_pressed = arcade.load_texture("Assets/UiStuff/Restart0.png")
        quit_button_normal = arcade.load_texture("Assets/UiStuff/GiveUp0.png")
        quit_button_hovered = arcade.load_texture("Assets/UiStuff/GiveUp1.png")
        quit_button_pressed = arcade.load_texture("Assets/UiStuff/GiveUp0.png")

        #Adds the texture to the sprite list and as the gui elements
        decor.center_x = 500
        decor.center_y = 325
        self.decor_list.append(decor)

        self.RestartButton = ImageButton(restart_button_normal, restart_button_hovered, restart_button_pressed,  800, 325)
        self.QuitButton = ImageButton(quit_button_normal, quit_button_hovered, quit_button_pressed, 200, 325)
        self.ui_manager.add_ui_element(self.RestartButton)
        self.ui_manager.add_ui_element(self.QuitButton)
    
    def on_update(self, delta_time):
        if self.RestartButton.is_clicked == True:
            self.ui_manager.purge_ui_elements()
            view = GameState()
            view.setup()
            self.window.show_view(view)
        if self.QuitButton.is_clicked == True:
            arcade.close_window()
    
    def on_draw(self):
        arcade.start_render()
        self.decor_list.draw()
コード例 #13
0
class ChoiceView(arcade.View):
    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()
        self.controlador = controller.Controller()
        self.personagem_list = None

    def on_show(self):
        """ This is run once when we switch to this view """
        arcade.set_background_color(arcade.color.BLEU_DE_FRANCE)
        # Reset the viewport, necessary if we have a scrolling game and we need
        # to reset the viewport back to the start so we can see what we draw.
        arcade.set_viewport(0, self.controlador.SCREEN_WIDTH - 1, 0,
                            self.controlador.SCREEN_HEIGHT - 1)

    def on_draw(self):
        """ Draw this view """
        arcade.start_render()
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()
        backgound_menu = arcade.load_texture('assets/choice_view.jpg')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_menu)
        self.personagem_list.draw()

    def setup(self):
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()

        y_slot = self.window.height // 4
        middle_x = self.window.width // 5

        self.personagem_list = arcade.SpriteList()
        b1 = Personagem('assets/button_yellow.png', 1)
        b1.position = middle_x * 2, y_slot * 1
        self.personagem_list.append(b1)
        b2 = Personagem('assets/button_blue.png', 2)
        b2.position = middle_x * 3, y_slot * 1
        self.personagem_list.append(b2)

    def on_mouse_press(self, x, y, _button, _modifiers):
        choice = arcade.get_sprites_at_point((x, y), self.personagem_list)
        if len(choice) > 0:
            if choice[0].tipo == 1:
                self.window.show_view(
                    self.controlador.card_view(Player('assets/yellow')))
            else:
                self.window.show_view(
                    self.controlador.card_view(Player('assets/blue')))
コード例 #14
0
ファイル: level_select.py プロジェクト: jakeperman/sharpthrow
class MyView(arcade.View):
    """
    Main view. Really the only view in this example. """
    def __init__(self):
        super().__init__()

        self.ui_manager = UIManager()

    def on_draw(self):
        """ Draw this view. GUI elements are automatically drawn. """
        arcade.start_render()

    def on_show_view(self):
        """ Called once when view is activated. """
        self.setup()

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()

    def setup(self):
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()

        y_slot = self.window.height - 40
        left_column_x = self.window.width // 4
        right_column_x = self.window.width - 200

        # left side elements
        self.ui_manager.add_ui_element(
            arcade.gui.UILabel(
                'UILabel',
                center_x=left_column_x,
                center_y=y_slot * 3,
            ))

        # right side elements
        button = Button(
            'Tutorial',
            center_x=right_column_x,
            center_y=y_slot * 1,
            width=250,
            # height=20
        )
        self.ui_manager.add_ui_element(button)
        button = Button(
            'Tutorial',
            center_x=right_column_x,
            center_y=y_slot * 1,
            width=250,
            # height=20
        )
コード例 #15
0
ファイル: gui.py プロジェクト: Zia-Ur-Rehman1/AI
class MyView(arcade.View):
    """
    Main view. Really the only view in this example. """
    def __init__(self):
        super().__init__()

        self.ui_manager = UIManager()

    def on_draw(self):
        """ Draw this view. GUI elements are automatically drawn. """
        arcade.start_render()

    def on_show_view(self):
        """ Called once when view is activated. """
        self.setup()
        arcade.set_background_color(arcade.color.BLACK)

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()

    def setup(self):
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()

        y_slot = self.window.height // 4
        left_column_x = self.window.width // 4
        right_column_x = 3 * self.window.width // 4

        # left side elements
        self.ui_manager.add_ui_element(
            arcade.gui.UILabel(
                'Grid By ALi Khan & Zhyaaaaa',
                center_x=left_column_x * 2,
                center_y=y_slot * 3,
            ))

        ui_input_box = arcade.gui.UIInputBox(center_x=left_column_x,
                                             center_y=y_slot * 2,
                                             width=300)
        ui_input_box.text = ''
        ui_input_box.cursor_index = len(ui_input_box.text)
        self.ui_manager.add_ui_element(ui_input_box)
        #grid_choice.make_grid(ui_input_box.text)

        # right side elements

        button = MyGhostFlatButton(center_x=right_column_x,
                                   center_y=y_slot * 2,
                                   input_box=ui_input_box)
        self.ui_manager.add_ui_element(button)
コード例 #16
0
class GameStart(arcade.View):
    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()
        self.music = arcade.Sound("Assets/Audio/burn_no_autostart.wav")
    
    def on_show(self):
        self.current_music = self.music.play(loop = True)
        self.setup()
        arcade.set_background_color((22, 16, 70))

    def setup(self):
        self.window.set_viewport(0, 1000, 0, 650)
        self.window.set_mouse_visible(visible = True)
        self.ui_manager.purge_ui_elements()

        self.decor_list = arcade.SpriteList()

        decor = arcade.Sprite("Assets/UiStuff/GameStartTorch.png")
        newGame_button_normal = arcade.load_texture("Assets/UiStuff/NewGame0.png")
        newGame_button_hovered = arcade.load_texture("Assets/UiStuff/NewGame1.png")
        newGame_button_pressed = arcade.load_texture("Assets/UiStuff/NewGame0.png")
        quit_button_normal = arcade.load_texture("Assets/UiStuff/Quit0.png")
        quit_button_hovered = arcade.load_texture("Assets/UiStuff/Quit1.png")
        quit_button_pressed = arcade.load_texture("Assets/UiStuff/Quit0.png")

        decor.center_x = 500
        decor.center_y = 325
        self.decor_list.append(decor)

        self.NewGameButton = ImageButton(newGame_button_normal, newGame_button_hovered, newGame_button_pressed,  800, 325)
        self.QuitButton = ImageButton(quit_button_normal, quit_button_hovered, quit_button_pressed, 200, 325)
        self.ui_manager.add_ui_element(self.NewGameButton)
        self.ui_manager.add_ui_element(self.QuitButton)
    
    def on_update(self, delta_time):
        if self.NewGameButton.is_clicked == True:
            self.music.stop(self.current_music)
            self.ui_manager.purge_ui_elements()
            view = GameState()
            view.setup()
            self.window.show_view(view)
        if self.QuitButton.is_clicked == True:
            arcade.close_window()

    def on_draw(self):
        arcade.start_render()
        self.decor_list.draw()
コード例 #17
0
class ConnectScreen(arcade.View):
    def __init__(self, win: arcade.Window):
        super().__init__()
        self.window = win
        self.ui_manager = UIManager(self.window)
        self.ui_manager.purge_ui_elements()
        ui_input_box = arcade.gui.UIInputBox(center_x=_width // 2,
                                             center_y=_height // 2,
                                             width=300)
        ui_input_box.text = ''
        ui_input_box.cursor_index = len(ui_input_box.text)
        self.ui_manager.add_ui_element(ui_input_box)
        self.ui_manager.add_ui_element(
            InputBoxButton(ui_input_box, self.window, self.ui_manager))

    def on_draw(self):
        arcade.start_render()
        arcade.set_background_color(arcade.csscolor.INDIGO)
コード例 #18
0
class GameEnd(arcade.View):
    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()

    def on_show(self):
        self.setup()
        arcade.set_background_color((10, 7, 38))
    
    def setup(self):
        self.window.set_viewport(0, 1000, 0, 650)
        self.window.set_mouse_visible(visible = True)
        self.ui_manager.purge_ui_elements()

        self.decor_list = arcade.SpriteList()

        decor = arcade.Sprite("Assets/UiStuff/EndScreenDecor.png")
        retry_button_normal = arcade.load_texture("Assets/UiStuff/Retry0.png")
        retry_button_hovered = arcade.load_texture("Assets/UiStuff/Retry1.png")
        retry_button_pressed = arcade.load_texture("Assets/UiStuff/Retry1.png")
        exit_button_normal = arcade.load_texture("Assets/UiStuff/Exit0.png")
        exit_button_hovered = arcade.load_texture("Assets/UiStuff/Exit1.png")
        exit_button_pressed = arcade.load_texture("Assets/UiStuff/Exit1.png")

        decor.center_x = 500
        decor.center_y = 325
        self.decor_list.append(decor)

        self.ExitButton = ImageButton(exit_button_normal, exit_button_hovered, exit_button_pressed,  800, 325)
        self.RestartButton = ImageButton(retry_button_normal, retry_button_hovered, retry_button_pressed, 200, 325)
        self.ui_manager.add_ui_element(self.ExitButton)
        self.ui_manager.add_ui_element(self.RestartButton)
    
    def on_draw(self):
        arcade.start_render()
        self.decor_list.draw()
    
    def on_update(self, delta_time):
        if self.ExitButton.is_clicked:
            arcade.close_window()
        if self.RestartButton.is_clicked:
            self.ui_manager.purge_ui_elements()
            view = GameStart()
            self.window.show_view(view)
コード例 #19
0
ファイル: main.py プロジェクト: Wasted-Deed/PythonGame
class MenuView(arcade.View):  #меню
    def __init__(self):
        super().__init__()

        self.ui_manager = UIManager()

    def on_show_view(self):
        self.setup()
        arcade.set_background_color(arcade.color.BLACK)

    def on_draw(self):
        arcade.start_render()
        arcade.draw_text("Добро пожаловать",
                         self.window.width / 2,
                         self.window.height / 1.5,
                         arcade.color.WHITE,
                         font_size=30,
                         anchor_x="center")

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()

    def setup(self):
        self.ui_manager.purge_ui_elements()
        self.ui_manager.add_ui_element(PlayButton())
        self.ui_manager.add_ui_element(SettingButton())
        self.ui_manager.add_ui_element(ExitButton())

    def on_update(self, delta_time):
        for i in range(3):
            button = self.ui_manager.find_by_id(i)
            button.center_x = self.window.width / 2
            button.center_y = (self.window.height / 2) - (35 * i)
            if button.click and i == 0:
                button.click = False
                game_view = GameView()
                game_view.setup()  #загрузка ресурсов
                window.show_view(game_view)
            elif button.click and i == 1:
                button.click = False
            elif button.click and i == 2:
                button.click = False
                window.close()
コード例 #20
0
ファイル: main.py プロジェクト: FloowDot/AsteroidsPlusPlus
class MenuView(arcade.View):
    def __init__(self):
        super().__init__()

        self.ui_manager = UIManager()

    def on_draw(self):
        arcade.start_render()
        self.logo.draw()

    def on_show_view(self):
        self.setup()
        arcade.set_background_color(arcade.color.BLACK)
        arcade.set_viewport(0, SCREEN_WIDTH - 1, 0, SCREEN_HEIGHT - 1)

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()

    def setup(self):
        self.ui_manager.purge_ui_elements()

        y_slot = SCREEN_HEIGHT // 4
        x_slot = SCREEN_WIDTH // 4

        self.logo = arcade.Sprite('sprites/menu/logo.png',
                                  1,
                                  center_x=x_slot * 2,
                                  center_y=y_slot * 3)

        button = buttons.ChangeViewButton('Play',
                                          x_slot,
                                          y_slot,
                                          game_view,
                                          width=250)

        self.ui_manager.add_ui_element(button)

        button = buttons.FullScreenButton('Toggle Fullscreen',
                                          x_slot * 2,
                                          y_slot,
                                          width=250)

        self.ui_manager.add_ui_element(button)
コード例 #21
0
class gameover(arcade.View):
    def __init__(self, s):
        super().__init__()
        self.finScore = s
        self.nameInput = UIInputBox(width=300,
                                    height=50,
                                    center_x=_width / 2,
                                    center_y=_height / 2 + 60)
        self.gameOverWindow = self.window
        self.gameOver_ui_manager = UIManager(self.gameOverWindow)
        self.mainMenu = mainMenuButton(self.window, self.gameOver_ui_manager)
        self.retry = retryButton(self.window, self.gameOver_ui_manager)
        self.submit = submitButton(self.window, self.gameOver_ui_manager,
                                   self.nameInput, self.finScore)

    def setup(self):
        self.gameOver_ui_manager.purge_ui_elements()
        self.gameOver_ui_manager.add_ui_element(self.mainMenu)
        self.gameOver_ui_manager.add_ui_element(self.retry)
        self.gameOver_ui_manager.add_ui_element(self.nameInput)
        self.gameOver_ui_manager.add_ui_element(self.submit)

    def on_draw(self):
        arcade.start_render()
        arcade.set_background_color(arcade.csscolor.CRIMSON)
        arcade.draw_text("GAME OVER",
                         _width / 2,
                         _height - 40,
                         arcade.color.WHITE,
                         30,
                         anchor_x="center",
                         anchor_y="center")
        arcade.draw_text("Final Score: " + str(self.finScore),
                         _width / 2,
                         _height - 100,
                         arcade.color.WHITE,
                         30,
                         anchor_x="center",
                         anchor_y="center")

    def on_show_view(self):
        self.setup()
コード例 #22
0
class MyView(arcade.View):
    def __init__(self, window: arcade.Window):
        super().__init__()

        self.window = window
        self.ui_manager = UIManager(window)

    def on_draw(self):
        arcade.start_render()

    def on_show_view(self):
        arcade.set_background_color(arcade.color.BLACK)
        self.ui_manager.purge_ui_elements()

        self.ui_manager.add_ui_element(
            arcade.gui.UILabel(
                text='Hello world',
                center_x=self.window.width // 2,
                center_y=self.window.height // 2,
            ))
コード例 #23
0
class MyView(arcade.View):
    def __init__(self, window: arcade.Window):
        super().__init__()

        self.window = window
        self.ui_manager = UIManager(window)

    def on_draw(self):
        arcade.start_render()

    def on_show_view(self):
        arcade.set_background_color(arcade.color.BLACK)
        self.ui_manager.purge_ui_elements()

        box = arcade.gui.UIInputBox(text='hello',
                                    center_x=400,
                                    center_y=300,
                                    width=200,
                                    height=40)
        self.ui_manager.add_ui_element(box)
コード例 #24
0
class gameUI(arcade.View):
    def __init__(self, win: arcade.Window):
        super().__init__()
        self.window = win
        self.ui_manager = UIManager(self.window)

    def setup(self):
        self.ui_manager.purge_ui_elements()
        #default style sheet
        UIStyle.default_style().set_class_attrs(
            'buttons',
            font_color=arcade.color.WHITE,
            font_color_hover=arcade.color.WHITE,
            font_color_press=arcade.color.WHITE,
            bg_color=(135, 21, 25),
            bg_color_hover=(135, 21, 25),
            bg_color_press=(122, 21, 24),
            border_color=(135, 21, 25),
            border_color_hover=arcade.color.WHITE,
            border_color_press=arcade.color.WHITE)
        #add buttons to UI manager
        self.ui_manager.add_ui_element(
            SinglePlayerButton(self.window.height // 2, self.window,
                               self.ui_manager))
        self.ui_manager.add_ui_element(
            MultiPlayerButton(self.window.height // 3, self.window,
                              self.ui_manager))

    def on_draw(self):
        arcade.start_render()
        arcade.set_background_color(arcade.csscolor.INDIGO)
        #renders title
        arcade.draw_text("Asteroids",
                         375,
                         395,
                         arcade.color.BLACK,
                         40,
                         align="center")

    def on_show_view(self):
        self.setup()
コード例 #25
0
class InstruView(arcade.View):
    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()
        self.controlador = controller.Controller()

    def on_draw(self):
        arcade.start_render()
        self.ui_manager.purge_ui_elements()
        y_slot = self.window.height // 4
        left_column_x = self.window.width // 2
        backgound_instru = arcade.load_texture('assets/instruções.jpg')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_instru)

    def on_mouse_press(self, _x, _y, _button, _modifiers):
        choice_view = self.controlador.select_cards_view()
        choice_view.setup()
        self.window.show_view(choice_view)
コード例 #26
0
ファイル: grend.py プロジェクト: FalconFX9/ArcadeRPG
class Menu(arcade.View):
    def __init__(self, state, window: arcade.Window):
        super().__init__(window)
        self.window = window
        self.state = state
        self.background_img = None
        self.ui_manager = UIManager(self.window)

    def setup(self):
        self.background_img = arcade.load_texture(C.RESOURCES +
                                                  'Backgrounds/Menu.png')
        self.ui_manager.purge_ui_elements()

        start = UIFlatButton('PLAY', self.window.width // 2,
                             self.window.height // 2 - 115, 200, 125)

        start.set_style_attrs(font_color=arcade.color.WHITE,
                              font_color_hover=arcade.color.WHITE,
                              font_color_press=arcade.color.WHITE,
                              bg_color=arcade.color.GREEN,
                              bg_color_hover=(0, 150, 0),
                              bg_color_press=arcade.color.DARK_GREEN,
                              border_color_hover=arcade.color.WHITE,
                              border_color=arcade.color.GREEN,
                              border_color_press=arcade.color.WHITE)

        self.ui_manager.add_ui_element(start)

        @start.event('on_click')
        def play():
            self.state.update_state()

    def on_show_view(self):
        self.setup()

    def on_draw(self):
        arcade.start_render()
        arcade.draw_lrwh_rectangle_textured(0, 0, C.WIDTH, C.HEIGHT,
                                            self.background_img)
コード例 #27
0
ファイル: game_v4.py プロジェクト: murraycoding/Python-Game
class Start_Screen_View(arcade.View):

    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()
        self.name = ""
        self.name_input = arcade.gui.UIInputBox(
            center_x = SCREEN_WIDTH/2,
            center_y = SCREEN_HEIGHT/2,
            width = 300,
            height = 40
        )

    # on show method
    def on_show(self):
        """ This is run once when we switch to this view """
        arcade.set_background_color(arcade.csscolor.BLACK)

        # Resets the viewport if needed
        arcade.set_viewport(0, SCREEN_WIDTH-1, 0, SCREEN_HEIGHT-1)

        # draws the input box to the screen
        self.ui_manager.add_ui_element(self.name_input)

    # on draw method
    def on_draw(self):
        """ This view is runs normally when this view is active """
        arcade.start_render()
        # Draw some text below
        arcade.draw_text("Press Enter to Start", SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2-75, arcade.color.WHITE, font_size=20, anchor_x="center")

    def on_key_press(self, key, _modifiers):
        """ If the user presses enter, the game starts """
        if key == 65293: # enter key = 65293
            self.name = self.name_input.text
            self.ui_manager.purge_ui_elements()
            game_view = MyGame(self.name)
            game_view.setup()
            self.window.show_view(game_view)
コード例 #28
0
class Menu(arcade.View):
    def __init__(self):
        super().__init__()

        self.ui_manager = UIManager()

    def on_draw(self):
        """ Draw this view. GUI elements are automatically drawn. """
        arcade.start_render()

    def on_show_view(self):
        """ Called once when view is activated. """
        self.setup()
        arcade.set_background_color(arcade.color.BLACK)

    def on_hide_view(self):
        self.ui_manager.unregister_handlers()

    def setup(self):
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()

        y_slot = self.window.height // 4

        self.ui_manager.add_ui_element(
            arcade.gui.UILabel(self.window.caption,
                               center_x=self.window.width // 2,
                               center_y=y_slot * 3,
                               id="label"))

        button = MyFlatButton(
            self.window,
            'Play',
            center_x=self.window.width // 2,
            center_y=y_slot * 2,
            width=250,
        )
        self.ui_manager.add_ui_element(button)
コード例 #29
0
class FinishView(arcade.View):
    def __init__(self, mensagem):
        super().__init__()
        self.ui_manager = UIManager()
        self.controlador = controller.Controller()
        self.mensagem = mensagem

    def on_show(self):
        """ This is run once when we switch to this view """
        arcade.set_background_color(arcade.color.BLEU_DE_FRANCE)
        # Reset the viewport, necessary if we have a scrolling game and we need
        # to reset the viewport back to the start so we can see what we draw.
        arcade.set_viewport(0, self.controlador.SCREEN_WIDTH - 1, 0,
                            self.controlador.SCREEN_HEIGHT - 1)

    def on_draw(self):
        """ Draw this view """
        arcade.start_render()
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()
        backgound_menu = arcade.load_texture('assets/background.jpg')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_menu)
        arcade.draw_text(self.mensagem,
                         self.window.width // 2,
                         self.window.height // 4 * 2,
                         arcade.csscolor.WHITE,
                         32,
                         align="center",
                         anchor_x="center",
                         anchor_y="center",
                         font_name='assets/Boxy-Bold.ttf')

    def on_mouse_press(self, _x, _y, _button, _modifiers):
        self.window.show_view(self.controlador.init_view())
コード例 #30
0
class ChoiceView(arcade.View):
    def __init__(self):
        super().__init__()
        self.ui_manager = UIManager()
        self.controlador = controller.Controller()

    def on_show(self):
        """ This is run once when we switch to this view """
        arcade.set_background_color(arcade.color.BLEU_DE_FRANCE)
        # Reset the viewport, necessary if we have a scrolling game and we need
        # to reset the viewport back to the start so we can see what we draw.
        arcade.set_viewport(0, self.controlador.SCREEN_WIDTH - 1, 0,
                            self.controlador.SCREEN_HEIGHT - 1)

    def on_key_press(self, key, modifiers):
        """Called whenever a key is pressed. """
        if key == arcade.key.KEY_1:
            self.ui_manager.purge_ui_elements()
            card = None
            personagem = 1
            choice_view = self.controlador.card_view(card, personagem)
            self.window.show_view(choice_view)
        elif key == arcade.key.KEY_2:
            self.ui_manager.purge_ui_elements()
            card = None
            personagem = 2
            choice_view = self.controlador.card_view(card, personagem)
            self.window.show_view(choice_view)
            #choice_view = self.controlador.single_player('assets/player_spritesheet.png')

        elif key == arcade.key.KEY_3:
            self.ui_manager.purge_ui_elements()
            card = 1
            personagem = None
            choice_view = self.controlador.card_view(card, personagem)
            self.window.show_view(choice_view)

    def on_draw(self):
        """ Draw this view """
        arcade.start_render()
        """ Set up this view. """
        self.ui_manager.purge_ui_elements()
        backgound_menu = arcade.load_texture('assets/choice_view.jpg')
        arcade.draw_lrwh_rectangle_textured(0, 0,
                                            self.controlador.SCREEN_WIDTH,
                                            self.controlador.SCREEN_HEIGHT,
                                            backgound_menu)