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)
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', ))
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())
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()
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))
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)
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.'
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()
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
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)
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)
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()
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')))
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 )
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)
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()
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)
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)
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()
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)
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()
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, ))
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)
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()
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)
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)
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)
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)
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())
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)