def controls_maxle(game, guy, drinks): for event in pygame.event.get(): if event.type == pygame.QUIT: quit_game() elif event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: game.quit = True if event.key == pygame.K_w: if game.p_on_turn == 0 and game.do_action != "thrown" and game.do_action != "doubt": game.do_action = "dice" if event.key == pygame.K_a: if game.p_on_turn == 0 and not game.first_round and game.do_action != "thrown" and \ game.do_action != "dice" and game.do_action != "doubt": game.do_action = "doubt" if game.do_action == "thrown": if event.key == pygame.K_UP: game.incr_dice() if event.key == pygame.K_DOWN: game.decr_dice() if event.key == pygame.K_RIGHT: game.dice_chose = 1 if event.key == pygame.K_LEFT: game.dice_chose = 0 if event.key == pygame.K_e: if not game.first_round: game.player_called = True return game
def run(self, win, setup): run = True while run: change_color_ok = False self.del_cursor(win, setup) keys = pygame.key.get_pressed() for event in pygame.event.get(): if event.type == pygame.QUIT or keys[pygame.K_ESCAPE]: quit_game() if keys[pygame.K_UP]: self.cursor_up() if keys[pygame.K_DOWN]: self.cursor_down() if keys[pygame.K_LEFT]: self.cursor_left() if keys[pygame.K_RIGHT]: self.cursor_right() if keys[pygame.K_e]: change_color_ok = True if keys[pygame.K_RETURN]: run = False self.draw_spectre(win, setup) if change_color_ok: self.change_color(self.cursor) self.draw_all(win, setup) self.draw_cursor(win, setup) self.timer_clock.tick(30) # print("FPS: ", self.timer_clock.get_fps()) pygame.display.update()
def controls_pause(pause_menu): run = True for event in pygame.event.get(): if event.type == pygame.QUIT: quit_game() elif event.type == pygame.MOUSEBUTTONDOWN or event.type == pygame.MOUSEMOTION: pause_menu.do_action_mouse(pygame.mouse.get_pos(), pygame.mouse.get_pressed()) elif event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: quit_game() elif event.key == pygame.K_UP: pygame.key.set_repeat(500, 100) pause_menu.selected = pause_menu.selected[ 1:] + pause_menu.selected[:1] while pause_menu.nr_selectables[pause_menu.selected.index( 1)] == 0: pause_menu.selected = pause_menu.selected[ 1:] + pause_menu.selected[:1] elif event.key == pygame.K_DOWN: pygame.key.set_repeat(500, 100) pause_menu.selected = pause_menu.selected[ -1:] + pause_menu.selected[:-1] while pause_menu.nr_selectables[pause_menu.selected.index( 1)] == 0: pause_menu.selected = pause_menu.selected[ -1:] + pause_menu.selected[:-1] elif event.key == pygame.K_RETURN: pause_menu.do_action("return") elif event.key == pygame.K_LEFT: inst = pause_menu.clickables[pause_menu.screen][ pause_menu.selected.index(1)] if isinstance(inst, pause_menu.Slider): if inst.val >= 1: inst.val = inst.val - 1 elif event.key == pygame.K_RIGHT: inst = pause_menu.clickables[pause_menu.screen][ pause_menu.selected.index(1)] if isinstance(inst, pause_menu.Slider): if inst.val < 255: inst.val = inst.val + 1 return run
def controls_order(chars, g): for event in pygame.event.get(): if event.type == pygame.QUIT: quit_game() if event.type == pygame.KEYDOWN: # if event.key == pygame.K_ESCAPE: # g.dialog_menu.quit = True if chars["guy"].orderAction == 5 or chars["guy"].orderAction == 6: if event.key == pygame.K_DOWN: if g.order_menue.choice < len(g.order_menue.drinks) - 1: g.order_menue.choice += 1 elif event.key == pygame.K_UP: if g.order_menue.choice > 0: g.order_menue.choice -= 1 elif event.key == pygame.K_e: for waiter in chars["waiter"]: waiter.orders_open[ chars["guy"]][1] = g.order_menue.choice + 1 chars["guy"].orderAction = 7 return g
def controls_dialog(dialog_menu): for event in pygame.event.get(): if event.type == pygame.QUIT: quit_game() if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: dialog_menu.quit = True # Talken if event.key == pygame.K_UP: if dialog_menu.choice > 0: dialog_menu.choice -= 1 elif event.key == pygame.K_DOWN: if dialog_menu.choice < len( dialog_menu.dlst[dialog_menu.Line][1]) - 1: dialog_menu.choice += 1 elif event.key == pygame.K_q: dialog_menu.Line = 0 elif event.key == pygame.K_e: if isinstance(dialog_menu.dlst[dialog_menu.Line][1], tuple): dialog_menu.Line = dialog_menu.dlst[dialog_menu.Line][2][ dialog_menu.choice] dialog_menu.choice = 0 return dialog_menu
def controls_game(setup, chars, g, obstacles, interactables, sv): run = True walk = True for event in pygame.event.get(): if event.type == pygame.QUIT: quit_game() elif event.type == pygame.MOUSEBUTTONDOWN: print(pygame.mouse.get_pos()) if event.type == pygame.KEYDOWN: if event.key == pygame.K_ESCAPE: quit_game() elif event.key == pygame.K_p: setup.pause_menu.active = True setup.pause_menu.start_pause = True walk = False # Bestellen elif event.key == pygame.K_e: walk = False active_inter = dir_check(interactables, chars["guy"]) if active_inter != 0: if active_inter.art == "door": active_inter.activated = True if not active_inter.opened else False chars["guy"].travel = active_inter.goto setup.travel_door = active_inter elif active_inter.art == "chair": if not chars["guy"].sit and not active_inter.active: chars["guy"].sit_down(active_inter) # for i in dirtyrect: # dirtyrects.append(i) # active_inter.active = True # else: # textwin.text_count = 0 # textwin.talker = active_inter.sit # textwin.text = 'Hey, schubs nicht so!' elif isinstance(active_inter, Radio): active_inter.active = not active_inter.active if active_inter.active: pygame.mixer.music.play(-1) else: pygame.mixer.music.stop() elif active_inter.art == "chalkboard": chars["guy"].text = 'Angebot der Woche: Willi!' chars["guy"].text_count = 0 elif event.key == pygame.K_d: walk = False # wenn noch was im glas ist und die animation des letzten schlucks beendet ist if chars["guy"].sips > 0 and chars["guy"].sipCount == 8: chars["guy"].drink_a_sip(g.drinks[chars["guy"].drink][2]) elif event.key == pygame.K_g: walk = False if chars["guy"].drink: active_guest = dir_check(chars["guests"], chars["guy"]) if not active_guest.drink: chars[ "guy"].drink = False # JESUS-MODUS: diese Zeile weglassen... active_guest.drink = chars["guy"].drink active_guest.sips = chars["guy"].sips active_guest.text = 'Oha! Danke?' active_guest.text_count = 0 elif event.key == pygame.K_i: walk = False inventory_active = not inventory_active elif event.key == pygame.K_l: walk = False chars["guy"].drunkenness -= 10 if chars["guy"].drunkenness < 0: chars["guy"].drunkenness = 0 elif event.key == pygame.K_t: walk = False active_guest = dir_check(chars["guests"], chars["guy"]) if active_guest != 0: chars["guy"].talk_action = 1 g.dialog_menue.chars[1] = active_guest if chars["guy"].sit: talkers = [ guest for guest in chars["guests"] if guest.sit and guest.chair.nr == chars["guy"].table ] if len(talkers) == 1: chars["guy"].talk_action = 1 g.dialog_menue.chars[1] = talkers[0] if len(talkers) > 1: chars["guy"].talk_action = 1 g.dialog_menue.chars[1] = talkers[0] g.dialog_menue.chars[2] = talkers[1] elif event.key == pygame.K_o: walk = False for waiter in chars["waiter"]: if chars["guy"] not in waiter.orders_open.keys(): if chars["guy"].sit: waiter.orders_open.update( {chars["guy"]: [0, 0, 0]}) chars["guy"].orderActive = True chars["guy"].orderAction = 0 else: chars[ "guy"].text = 'Ich sollte mich besser erstmal setzen.' chars["guy"].text_count = -1 elif event.key == pygame.K_m: walk = False players = [] if chars["guy"].sit: players = [ guest for guest in chars["guests"] if guest.sit and guest.chair.nr == chars["guy"].table ] if players: from Scripts.Minigames.GameMaxle import GameMaxle chars["guy"].game = "maxle" chars["guy"].start_game = True setup.game_maxle = GameMaxle(chars["guy"], players, g.drinks) elif event.key == pygame.K_b: chars["guy"].travel = "lvl_main" chars["guy"].door_id = "kitchen" # Laufen if walk: run, game_maxle, inventory_active = controls_walking( setup, chars, obstacles, interactables, sv) # if game_maxle: # self.game_maxle = game_maxle return run