def __init__(self, sonos, title, tracks, playlist):
        NavigationScene.__init__(self, title)

        self.sonos = sonos
        self.background_color = colors.NAVY

        self.tracks = tracks
        self.track_titles = []
        self.playlist = playlist
        for track in self.tracks:
            self.track_titles.append(track.title)       

        # Add list of tracks
        self.track_list_view = ListView(Rect(0,80,Window.frame.width, Window.frame.height - 80),self.track_titles)
        self.track_list_view.on_selected.connect(self.track_selected)
        self.add_child(self.track_list_view)

        ##### Play All Button #####
        play_all_button_image = Image('play_all_button',filename='play_all.png')
        self.play_all_button = Button(Rect(30,self.frame.height - 55,30,30),image=play_all_button_image)        
        self.play_all_button.on_tapped.connect(self.play_all)        
        self.add_child(self.play_all_button)

        ##### Shuffle Button #####
        shuffle_button_image = Image('shuffle_button',filename='shuffle.png')
        self.shuffle_button = Button(Rect(250,self.frame.height - 60,40,40),image=shuffle_button_image)        
        self.shuffle_button.on_tapped.connect(self.shuffle)        
        self.add_child(self.shuffle_button) 
예제 #2
0
    def __init__(self, director, video_number, nextScene=None):
        super(Cutscene, self).__init__()

        self.director = director
        self.backscene = self.director.scene
        self.video_number = video_number
        self.videoDirectory = '../res/cutscenes/cutscene' + str(
            video_number) + '.mov'
        self.nextScene = nextScene

        print("loading: ", self.videoDirectory)

        self.skipped = False

        self.skippable = True

        # print

        self.vidLayer = VideoLayer(self.videoDirectory)

        back_button = Button(83, 638, '../res/main_left.png', self, self.back)
        back_button.setHasHighlight('../res/main_left_h.png')

        if self.skippable:
            # print("skippable")
            skip_button = Button(1187, 638, '../res/main_right.png', self,
                                 self.skip)
            skip_button.setHasHighlight('../res/main_right_h.png')
            self.add(skip_button, 1)

        self.add(back_button, 1)
        self.add(self.vidLayer, 0)

        self.vidLayer.play()
        th.start_new_thread(self.endChecker, (self.vidLayer.media_player, ))
예제 #3
0
    def __init__(self, director):

        super().__init__()

        self.director = director

        initBG = pyglet.image.load('../res/start_screen.png')
        self.initSprite = cocos.sprite.Sprite(initBG, position=(initBG.width/2,initBG.height/2))

        menu_buttons = {}

        menu_buttons['play_game'] = Button(1127, 300, '../res/play_game.png',self,self.on_new_game)
        menu_buttons['play_game'].setHasHighlight('../res/play game_highlight.png') 
        menu_buttons['continue'] = Button(1127, 241, '../res/continue.png',self,self.on_continue)
        menu_buttons['continue'].setHasHighlight('../res/continue_highlight.png') 
        menu_buttons['about'] = Button(1127, 182, '../res/about.png',self,self.on_about)
        menu_buttons['about'].setHasHighlight('../res/about_highlight.png') 
        menu_buttons['credits'] = Button(1127, 123, '../res/credits.png',self,self.on_credits)
        menu_buttons['credits'].setHasHighlight('../res/credits_highlight.png') 
        menu_buttons['exit'] = Button(1127, 64, '../res/exit.png',self,self.on_quit)
        menu_buttons['exit'].setHasHighlight('../res/exit_highlight.png') 

        for button in menu_buttons.values():
            self.add(button, 1)

        # self.add(menu, z=1)
        self.add(self.initSprite, z=0)
예제 #4
0
    def __init__(self) -> None:
        self.btn = self.ButtonPos.PLAY
        self.state = MenuState.MAIN
        self.main_screen = []
        self.score_screen = []
        self.main_screen.append(
            Button(
                "PLAY",
                self.ButtonPos.PLAY.value,
                50,
                Position(s.WIN_W * s.scale / 2, 130 * s.scale),
                utils.window_manager.window,
            ))
        self.main_screen.append(
            Button(
                "SCORE",
                self.ButtonPos.SCORE.value,
                30,
                Position(s.WIN_W * s.scale / 2, 200 * s.scale),
                utils.window_manager.window,
            ))
        self.main_screen.append(
            Button(
                "QUIT",
                self.ButtonPos.QUIT.value,
                30,
                Position(s.WIN_W * s.scale / 2, 250 * s.scale),
                utils.window_manager.window,
            ))
        self.update_score()

        self.start_menu = StartMenu()
    def __init__(self, frame, items):
        View.__init__(self, frame)

        self.items = items
        self.list_buttons = []
        self.list_index = 0
        self.per_page = 7

        self.on_selected = Signal()

        ##### Previous Button #####
        previous_button_image = Image('previous_button',
                                      filename='previous_button.png')
        self.previous_button = Button(Rect(110, self.frame.height - 60, 40,
                                           40),
                                      image=previous_button_image)
        self.previous_button.on_tapped.connect(self.previous)
        self.previous_button.hidden = True
        self.add_child(self.previous_button)

        ##### Next Button #####
        next_button_image = Image('next_button', filename='next_button.png')
        self.next_button = Button(Rect(170, self.frame.height - 60, 40, 40),
                                  image=next_button_image)
        self.next_button.on_tapped.connect(self.next)
        self.next_button.hidden = True
        self.add_child(self.next_button)

        self.layout()

        self.create_items()
예제 #6
0
    def __init__(self,
                 parent,
                 action,
                 to_select,
                 bgnum=1,
                 width=1280,
                 height=720):
        self.parent = parent
        self.action = action

        super().__init__(30, 48, 130, 0, width=width, height=height)

        # self.ua = pyglet.image.load('../res/minigame1/upright_arms.png')
        # self.sa = pyglet.image.load('../res/minigame1/smash_arms.png')
        self.to_select = set(to_select)
        self.selected = set()

        self.bg_img = pyglet.image.load(
            '../res/choose_hero/platform.png' if bgnum ==
            1 else '../res/choose_hero/platform_2.png')
        self.bg = cocos.sprite.Sprite(self.bg_img, position=(640, 360))
        # self.arm_sprite = cocos.sprite.Sprite(self.ua, position=(640,360))

        self.buttons = {}
        self.buttons['helicase'] = Button(287, 221,
                                          '../res/choose_hero/helicase.png',
                                          self, self.helicase_clicked)
        self.buttons['helicase'].setHasProjection(
            '../res/choose_hero/helicase_holo.png')

        self.buttons['primase'] = Button(529, 221,
                                         '../res/choose_hero/primase.png',
                                         self, self.primase_clicked)
        self.buttons['primase'].setHasProjection(
            '../res/choose_hero/primase_holo.png')

        self.buttons['polymerase'] = Button(
            771, 221, '../res/choose_hero/polymerase.png', self,
            self.polymerase_clicked)
        self.buttons['polymerase'].setHasProjection(
            '../res/choose_hero/polymerase_holo.png')

        self.buttons['ligase'] = Button(
            1013,
            221,
            '../res/choose_hero/ligase.png',
            self,
            self.ligase_clicked,
        )
        self.buttons['ligase'].setHasProjection(
            '../res/choose_hero/ligase_holo.png')

        for button in self.buttons.values():
            self.add(button, 1)

        self.add(self.bg, 0)

        self.hide()
예제 #7
0
파일: game.py 프로젝트: rafaeldblima/pygame
    def __init__(self):
        """Initialize the game, and create game resources."""

        pygame.init()

        self.settings = Settings()

        self.screen = pygame.display.set_mode(
            (self.settings.screen_width, self.settings.screen_height))
        # Full screen
        # self.screen = pygame.display.set_mode((0,0), pygame.FULLSCREEN)
        # self.settings.screen_width = self.screen.get_rect().width
        # self.settings.screen_height = self.screen.get_rect().height
        pygame.display.set_caption("Alien Invasion")

        # Create an instance to store game statistics, and create a scoreboard.
        self.stats = GameStats(self)
        self.sb = Scoreboard(self)

        self.ship = Ship(self)
        self.bullets = pygame.sprite.Group()
        self.aliens = pygame.sprite.Group()

        self._create_fleet()

        self._start_event_handler()

        # MAke the play button
        self.play_button = Button(self, "Play")
예제 #8
0
    def __init__(self, scroller, target, width=1280, height=720):
        super().__init__(57, 67, 63, 0, width=width, height=height)

        picDir = '../res/inventory.png'

        self.scroller = scroller
        self.opacity = 0
        self.target = target

        self.image = pyglet.image.load(picDir)
        self.spr = cocos.sprite.Sprite(self.image, position=(640, 360))

        self.backButton = Button(1070, 627, '../res/inventory_back.png', self,
                                 self.hide)
        self.backButton.setHasHighlight('../res/inventory_back_h.png')

        self.highlight = False
        self.onHover = False
        self.highlight = True

        self.add(self.backButton, 1)
        self.add(self.spr, 0)

        self.spr.do(Hide())
        self.backButton.spr.do(Hide())
 def create_library_list(self):
     y = 80
     for category in SelectMusic.CATEGORIES:
         library_option_button = Button(Rect(40, y, 240, 40),
                                        34,
                                        Label.LEFT,
                                        text=category)
         library_option_button.on_tapped.connect(self.select_library_option)
         self.add_child(library_option_button)
         y += 80
예제 #10
0
    def __init__(self, parent=None):
        super().__init__()

        button = QPushButton('Me!')
        strip = QHBoxLayout()
        strip.setAlignment(Qt.AlignTop)
        self.setLayout(strip)
        strip.addWidget(Button())

        verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Expanding,
                                     QSizePolicy.Minimum)
        strip.addItem(verticalSpacer)
    def __init__(self, sonos):
        ModalScene.__init__(self, sonos.current_zone)

        self.sonos = sonos

        in_party_mode = Sonos.in_party_mode()

        ##### Party Mode On Button #####
        icon_party_on_image = Image('icon_party_on',
                                    filename='icon_party_on.png')
        self.party_on_button = Button(Rect(270, 20, 30, 30),
                                      image=icon_party_on_image)
        self.party_on_button.hidden = in_party_mode
        self.party_on_button.on_tapped.connect(self.group_all)
        self.add_child(self.party_on_button)

        ##### Party Mode Off Button #####
        icon_party_off_image = Image('icon_party_off',
                                     filename='icon_party_off.png')
        self.party_off_button = Button(Rect(270, 20, 30, 30),
                                       image=icon_party_off_image)
        self.party_off_button.on_tapped.connect(self.group_none)
        self.party_off_button.hidden = not in_party_mode
        self.add_child(self.party_off_button)

        ##### Done Button #####
        self.done_button = Button(Rect(20, 430, 280, 40), 40, text='Done')
        self.done_button.on_tapped.connect(self.done)
        self.add_child(self.done_button)

        self.room_buttons = []

        self.unchanged = True

        self.layout()
        self.generate_rooms()
    def __init__(self, title):
        Scene.__init__(self)

        self.background_color = colors.MODAL

        # Title label
        self.title_label = Label(Rect(50, 20, 220, 40), title, 40,
                                 colors.WHITE)
        self.add_child(self.title_label)

        ##### Back Button #####
        icon_back_image = Image('icon_back', filename='icon_back.png')
        self.back_button = Button(Rect(20, 20, 30, 30), image=icon_back_image)
        self.back_button.on_tapped.connect(self.back)
        self.add_child(self.back_button)

        self.layout()
    def generate_room_list(self):
        ''' Generates a list of rooms/zones

        If a room is a zone coordinator and has members in its group,
        it will be displayed first with all its members appended to it
        with commas'''
        y = 80
        for zone in Sonos.get_zone_groups():
            if zone["is_coordinator"]:
                button_text = zone["name"]
                for member in zone["members"]:
                    button_text += ", {}".format(member)
                room_button = Button(Rect(20, y, 280, 40),
                                     30,
                                     text=button_text)
                room_button.on_tapped.connect(self.change_room)
                self.add_child(room_button)
                y += 60
    def create_items(self):
        # Clean up any old buttons before addings new ones
        for button in self.list_buttons:
            button.remove()

        self.update_list_navigation()
        y = 0
        for index, item in enumerate(self.items):
            if index >= self.list_index and index < (self.list_index +
                                                     self.per_page):
                item_button = Button(Rect(40, y, 240, 30),
                                     30,
                                     Label.LEFT,
                                     text=item)
                item_button.on_tapped.connect(self.select_item)
                self.add_child(item_button)
                self.list_buttons.append(item_button)
                y += 50
예제 #15
0
 def drawAdditionalContent(self, data, appendButtons=[]):
     self.allSprites = []
     text = Text(text="Player %s Win!" % (data + 1),
                 fontSize=50,
                 alignment=CENTER_MIDDLE,
                 location=(self.pageSize[POS_X]/2, self.pageSize[POS_Y]/4),
                 basePoint=self.popUpPageBasePoint)
     self.allSprites.append(text)
     for appendButton in appendButtons:
         buttonSprite = Button(appendButton["func"],
                               buttonSize=(150, 40),
                               text=appendButton["name"],
                               fontSize=30,
                               location=(self.pageSize[POS_X] if appendButton["location"][POS_X] == PARENT_SIZE_WIDTH  else appendButton["location"][POS_X],
                                         self.pageSize[POS_Y] if appendButton["location"][POS_Y] == PARENT_SIZE_HEIGHT  else appendButton["location"][POS_Y]),
                               alignment=appendButton["alignment"],
                               basePoint=self.popUpPageBasePoint)
         buttonSprite.listen(appendButton["listener"])
         self.allSprites.append(buttonSprite)
예제 #16
0
def fill_widgets(player, widgets, config, game_state):
    # Fills the needed widgets on the screen depending the current game state.

    # Fill inventory full of widgets based on the items in the inventory.
    if game_state == GameState.show_inventory:
        x = int(config['window_width'] / 2) - 35
        y = 25
        color = config['button']['inventory']['item']['default']
        selected_color = config['button']['inventory']['item']['selected']
        for item in player.alive.inventory.items:
            text = '%s - %s' % (item.name, item.quantity)
            widgets.append(
                Button(x,
                       y,
                       text,
                       color,
                       selected_color,
                       item.action,
                       attached=item))
            y += 6
예제 #17
0
    def __init__(self) -> None:
        self.name = "enter your name"
        self.letter = "A"
        self.buttons = []
        self.move_timer = 0
        self.plate = pygame.Surface((300 * s.scale, 300 * s.scale))

        self.game_over = Text("Name change", (255, 255, 255), 30,
                              Position(s.WIN_W // 2, s.WIN_H // 4))
        self.name_text = Text(self.name, (255, 255, 255), 30,
                              Position(s.WIN_W // 2, s.WIN_H * 2 // 4))
        self.press_a_btn = Text(
            "A to select letter",
            (255, 255, 255),
            15,
            Position(s.WIN_W // 2, s.WIN_H * 3 // 4),
        )
        self.press_start_btn = Text(
            "Start to confirm",
            (255, 255, 255),
            15,
            Position(s.WIN_W // 2, s.WIN_H * 3 // 4 + 15),
        )
        self.press_b_btn = Text(
            "B to clear letter",
            (255, 255, 255),
            15,
            Position(s.WIN_W // 2, s.WIN_H * 3 // 4 + 30),
        )
        x0 = 0
        y0 = 0
        for letter in LETTERS:
            x = x0 * 15 * s.scale + 90 * s.scale
            y = y0 * 20 * s.scale + 75 * s.scale
            self.buttons.append(
                Button(letter, letter, 14, Position(x, y), self.plate))
            x0 += 1
            if x0 == 9:
                x0 = 0
                y0 += 1
    def generate_rooms(self):
        checkbox_empty_image = Image('checkbox_empty',
                                     filename='checkbox_empty.png')
        checkbox_filled_image = Image('checkbox_filled',
                                      filename='checkbox_filled.png')
        members = self.sonos.group_members
        y = 80
        for zone in self.sonos.potential_members:
            select_room_button = Button(Rect(60, y, 280, 30),
                                        34,
                                        Label.LEFT,
                                        image=checkbox_empty_image,
                                        checked_image=checkbox_filled_image,
                                        text=zone)
            select_room_button.on_tapped.connect(self.select_room)
            self.add_child(select_room_button)
            self.room_buttons.append(select_room_button)
            y += 60

            if zone in members:
                # this zone is already a member
                select_room_button.checked = True
예제 #19
0
    def update_buttons(self, b_press=set()):

        b_size = (150, 60)

        b_press_up_color = (0, 200, 0)
        b_press_down_color = (0, 100, 0)
        if "b_play" in b_press:
            b_color = b_press_down_color
        else:
            b_color = b_press_up_color
        b_play = Button(tag="b_play",
                        text="Play",
                        font=self.files.get_font(40),
                        text_color=(255, 255, 255),
                        img_file_str=self.files.get_button_img_str(),
                        b_color=b_color,
                        position=(self.screen_size[0] // 2 - b_size[0] // 2,
                                  self.screen_size[1] // 2.5),
                        size=b_size,
                        rotate=0)

        b_size = (150, 40)
        b_press_up_color = (0, 200, 0)
        b_press_down_color = (0, 100, 0)
        if "b_scores" in b_press:
            b_color = b_press_down_color
        else:
            b_color = b_press_up_color
        b_scores = Button(tag="b_scores",
                          text="Highscores",
                          font=self.files.get_font(30),
                          text_color=(255, 255, 255),
                          img_file_str=self.files.get_button_img_str(),
                          b_color=b_color,
                          position=(self.screen_size[0] // 2 - b_size[0] // 2,
                                    self.screen_size[1] // 1.8),
                          size=b_size,
                          rotate=0)

        b_size = (110, 35)
        b_press_up_color = (150, 0, 0)
        b_press_down_color = (50, 0, 0)
        if "b_quit" in b_press:
            b_color = b_press_down_color
        else:
            b_color = b_press_up_color
        b_quit = Button(tag="b_quit",
                        text="Quit",
                        font=self.files.get_font(30),
                        text_color=(255, 255, 255),
                        img_file_str=self.files.get_button_img_str(),
                        b_color=b_color,
                        position=(self.screen_size[0] // 2 - b_size[0] // 2,
                                  self.screen_size[1] // 1.4),
                        size=b_size,
                        rotate=0)

        self.buttons.add(b_play)
        self.buttons.add(b_scores)
        self.buttons.add(b_quit)

        self.all_sprites.add(self.buttons)
예제 #20
0
    def __init__(self, director, state):

        self.director = director
        self.state = state

        self.dna = GameBackground('../res/main_game_backgrounds/main.png')
        # self.bg = GameBackground('../res/main_game_backgrounds/background.png')

        super().__init__()

        self.save_dir = 'profiles/save.json'
        if self.state == 'newgame':
            self.profile = Profile()
        else:
            self.profile = Profile() if not os.path.exists(
                self.save_dir) else Profile.read_save(self.save_dir)

        self.popups = {}
        self.shown_popup = None
        # for name in os.
        self.popups['finish_helicase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/finish_helicase.png'),
            position=(640, 360))
        self.popups['fail_helicase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/fail_helicase.png'),
            position=(640, 360))
        self.popups['finish_pp'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/finish_pp.png'),
            position=(640, 360))
        self.popups['fail_pp'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/fail_pp.png'),
            position=(640, 360))
        self.popups['finish_ligase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/finish_ligase.png'),
            position=(640, 360))
        self.popups['fail_ligase'] = cocos.sprite.Sprite(
            pyglet.image.load('../res/popups/fail_ligase.png'),
            position=(640, 360))

        for pop in self.popups.values():
            self.add(pop, 4)
            pop.do(Hide())

        self.case = self.profile.information['case']

        self.pos = [600, 0]

        self.life_num = self.profile.get_lives()
        print('new life number', self.life_num)
        self.lives = cocos.sprite.Sprite(
            pyglet.image.load('../res/lives_' + str(self.life_num) + '.png'),
            position=(224, 637))

        self.scroller = cocos.layer.ScrollingManager()
        self.MGLayer = MainGameLayer(self.director, self.scroller, self,
                                     self.case, self.profile, self.dna)

        back_button = Button(1199, 658, '../res/back_button.png', self,
                             self.back)
        back_button.setHasHighlight('../res/back_button_h.png')

        left_button = Button(1050, 90, '../res/BUTTON LEFT.png', self,
                             self.set_pos_left)
        left_button.setHasHighlight('../res/BUTTON LEFT HIGHLIGHTED.png')
        right_button = Button(1190, 90, '../res/BUTTON RIGHT.png', self,
                              self.set_pos_right)
        right_button.setHasHighlight('../res/BUTTON RIGHT HIGHLIGHTED.png')

        self.add(back_button, z=1)
        self.add(left_button, z=1)
        self.add(right_button, z=1)
        self.add(self.lives, z=1)
        self.scroller.add(self.MGLayer, z=0)
        self.add(self.scroller, z=0)

        # initial view position
        self.scroller.set_focus(*self.pos)
    def __init__(self, sonos):
        Scene.__init__(self)
        self.sonos = sonos                  
        self.firstLoad = True

        ########## SETUP UI ##########

        self.background_color = colors.NAVY

        # Select Music
        select_music_image = Image('select_music',filename='select_music.png')
        self.select_music_button = Button(Rect(20,20,30,30),image=select_music_image)
        self.select_music_button.on_tapped.connect(self.select_music_modal)
        self.add_child(self.select_music_button)

        # Current Room   
        self.room_label = Label(Rect(50,24,220,30),self.sonos.current_zone_label,30,colors.WHITE)
        self.add_child(self.room_label)

        # Select Room
        select_room_image = Image('select_room',filename='select_room.png')
        self.select_room_button = Button(Rect(270,20,30,30),image=select_room_image)
        self.select_room_button.on_tapped.connect(self.select_room_modal)
        self.add_child(self.select_room_button)

        # Album Art
        self.empty_album_image = Image('empty_album',filename='empty_album_art.png')
        self.tv_album_image = Image('tv_album_art',filename='tv_album_art.png')
        self.album_art_view = ImageView(Rect(80,72,160,160),self.empty_album_image)
        self.add_child(self.album_art_view)

        # Track Title   
        self.track_label = Label(Rect(20,256,280,30),"",36, colors.WHITE)             
        self.add_child(self.track_label)
        # Artist
        self.artist_label = Label(Rect(20,296,280,20),"",24, colors.GRAY)
        self.add_child(self.artist_label)
        # Album
        self.album_label = Label(Rect(20,321,280,20),"",24, colors.GRAY)
        self.add_child(self.album_label)

        ##### Play Button #####
        play_track_img = Image('play_track',filename='play_track.png')
        play_track_disabled_img = Image('play_track_disabled',filename='play_track_disabled.png')
        self.play_button = Button(Rect(130,360,60,60),image=play_track_img, disabled_image=play_track_disabled_img)
        #Touch Handler
        self.play_button.on_tapped.connect(self.play)
        self.add_child(self.play_button)

        ##### Pause Button #####
        pause_track_img = Image('pause_track',filename='pause_track.png')
        self.pause_button = Button(Rect(130,360,60,60),image=pause_track_img)
        self.pause_button.hidden = True
        #Touch Handler
        self.pause_button.on_tapped.connect(self.pause)
        self.add_child(self.pause_button)

        ##### Previous Track #####
        previous_track_img = Image('previous_track',filename='previous_track.png')
        previous_track_disabled_img = Image('previous_track_disabled',filename='previous_track_disabled.png')        
        self.previous_button = Button(Rect(65,370,40,40),image=previous_track_img, disabled_image=previous_track_disabled_img)
        #Touch Handler
        self.previous_button.on_tapped.connect(self.previous)
        self.add_child(self.previous_button)

        ##### Next Track #####
        next_track_img = Image('next_track',filename='next_track.png')
        next_track_disabled_img = Image('next_track_disabled',filename='next_track_disabled.png')
        self.next_button = Button(Rect(215,370,40,40),image=next_track_img,disabled_image=next_track_disabled_img)
        #Touch Handler
        self.next_button.on_tapped.connect(self.next)
        self.add_child(self.next_button)

        ##### Volume Down Button #####
        volume_down_img = Image('volume_down',filename='volume_down.png')
        self.volume_down_button = Button(Rect(92,438,30,30),image=volume_down_img)
        #Touch Handler
        self.volume_down_button.on_tapped.connect(self.volume_down)
        self.add_child(self.volume_down_button)

        ##### Volume On Button #####
        volume_on_img = Image('volume_on',filename='volume_on.png')
        self.volume_on_button = Button(Rect(147,440,26,26),image=volume_on_img)
        #Touch Handler
        self.volume_on_button.on_tapped.connect(self.mute)
        self.add_child(self.volume_on_button)

        ##### Volume Mute Button #####
        volume_mute_img = Image('volume_mute',filename='volume_mute.png')
        self.volume_mute_button = Button(Rect(147,440,26,26),image=volume_mute_img)
        self.volume_mute_button.hidden = True
        #Touch Handler
        self.volume_mute_button.on_tapped.connect(self.unmute)
        self.add_child(self.volume_mute_button)

        # Volume Level Label
        self.volume_label = Label(Rect(30,447,40,30),"",20, colors.GRAY)
        self.add_child(self.volume_label)

        ##### Volume Up Button #####
        volume_up_img = Image('volume_up',filename='volume_up.png')    
        self.volume_up_button = Button(Rect(197,438,30,30),image=volume_up_img)
        #Touch Handler
        self.volume_up_button.on_tapped.connect(self.volume_up)
        self.add_child(self.volume_up_button)

        ##### Group Rooms Button #####
        group_rooms_img = Image('group_rooms',filename='group_rooms.png')
        self.group_rooms_button = Button(Rect(270,440,26,26),image=group_rooms_img)
        #Touch Handler
        self.group_rooms_button.on_tapped.connect(self.group_rooms_modal)
        self.add_child(self.group_rooms_button)        

        # Layout the scene
        self.layout()

        # Keep hidden until everything has loaded
        self.hidden = True

        ########## END SETUP UI ##########

        # Listen for all changes to the current zone   
        self.sonos.listen_for_zone_changes(self.zone_state_changed)
예제 #22
0
    def __init__(self, director, victory_action, fail_action):
        
        self.director = director
        # self.mainGameLayer = mainGameLayer
        self.victory_action = victory_action
        self.fail_action = fail_action

        super().__init__()

        bg = GameBackground('../res/minigame2/minigame2_background.png')        
        self.pos = [1280, 720]

        self.youre_next = cocos.sprite.Sprite(pyglet.image.load('../res/minigame2/popup.png'), position=(255,330))
        self.youre_next.do(Hide())
        self.click_anywhere = Button(640,360,'../res/minigame1/finish_level_button.png', self, self.assign_next)
        self.click_anywhere.disable()

        self.arrow_down = Button(550,560,'../res/minigame2/arrow_sprite_sheet.png', self, self.victory_action, isSpriteSheet=True, speed=0.125)
        self.add(self.arrow_down, 4)

        self.dp1 = cocos.sprite.Sprite(pyglet.image.load('../res/Profile_picture/Polymerase_Active_Agent.png'), position=(811,665))
        # self.dp1 = Button(850,665, '../res/Profile_picture/Helicase_Active_Agent.png', self, self.back, toAdjust=True)
        self.dp2 = cocos.sprite.Sprite(pyglet.image.load('../res/Profile_picture/Primase_Active_Agent.png'), position=(350,665))
        # self.dp = Button(350,665, '../res/Profile_picture/Helicase_Active_Agent.png', self, self.back, toAdjust=True)
        self.add(self.dp2, 11)
        self.add(self.dp1, 11)

        self.platform = cocos.sprite.Sprite(pyglet.image.load('../res/minigame2/buttons/platform.png'), position=(620,94))
        # self.platform = Button(640,360,'../res/minigame2/buttons/platform.png', self, self.back, toAdjust=True)
        self.add(self.platform, 1)

        self.buttons = {}

        self.next_turn = False

        self.bases = [  'a' if x == 0 else 
                        't' if x == 1 else
                        'c' if x == 2 else
                        'g' if x == 3 else
                        'b' for x in [random.randrange(0,4) for i in range(0,20)]]

        # self.is_num = len(self.bases)-1
            # if index in range(0,5): 
            #     sug.do(Hide())

        # self.sugar = cocos.sprite.Sprite(pyglet.image.load('../res/minigame2/sugar.png'), position=(2000,2000))

        self.do_list = [(34, 348),
                        (106, 307),
                        (224, 295),
                        (303, 364),
                        (417, 414),
                        (536, 459),
                        (654, 388),
                        (751, 279),
                        (871, 320),
                        (956, 392),
                        (1076, 444),
                        (1200, 384)
                    ]

        # self.position_sugar(self.sugar, self.do_list[3], self.do_list[4])
        # self.add(self.sugar, z=11)

        # self.do_list.reverse()
        self.game_counter = 0
        self.alive_nucleotides = 5
        self.buffer = 0

        self.buttons['back'] = Button(78,666, '../res/main_left.png', self, self.back)
        self.buttons['back'].setHasHighlight('../res/main_left_h.png')

        self.characters = {}
        self.characters['primase'] = Button(64,75, '../res/minigame2/primase_smol.png', self, self.back)
        self.characters['polymerase'] = Button(190,75, '../res/minigame2/polymerase_smol.png', self, self.back)

        self.popup_anchor = (640,360)
        self.buttons['A'] = Button(476,90,'../res/minigame2/buttons/a.png', self, self.put_a)
        self.buttons['A'].setHasClicked('../res/minigame2/buttons/a_p.png')
        self.buttons['T'] = Button(576,90,'../res/minigame2/buttons/t.png', self, self.put_t)
        self.buttons['T'].setHasClicked('../res/minigame2/buttons/t_p.png')
        self.buttons['C'] = Button(676,90,'../res/minigame2/buttons/c.png', self, self.put_c)
        self.buttons['C'].setHasClicked('../res/minigame2/buttons/c_p.png')
        self.buttons['G'] = Button(776,90,'../res/minigame2/buttons/g.png', self, self.put_g)
        self.buttons['G'].setHasClicked('../res/minigame2/buttons/g_p.png')
        self.buttons['P'] = Button(630,90,'../res/minigame2/buttons/p.png', self, self.put_p)
        self.buttons['P'].setHasClicked('../res/minigame2/buttons/p_p.png')

        self.dna = []

        for num, base in enumerate(self.bases):

            temp = Button(2000,2000, '../res/minigame2/nucleotide_'+base+'.png', self, self.back)
            temp.identity = base
            temp.setHasInactive('../res/minigame2/nucleotide_hide.png')
            self.dna.append(temp)

        self.interval_sugars = [cocos.sprite.Sprite(pyglet.image.load('../res/minigame2/upper_sugar.png'), position=(2000,2000)) for i in range(0,19)]
        for index, sug in enumerate(self.interval_sugars):
            self.add(sug, 1)
            sug.do(Hide())


        self.reconfigure_dna(init=True)
        
        # for index, nucleotide in enumerate(self.dna):
        #     print('dddd')
        #     if not index == 19:
        #         self.position_sugar(self.interval_sugars[index], self.dna[index].spr.position, nucleotide.spr.position)

        for key, button in self.buttons.items():
            self.add(button, 2)
            if not key in ['P','back']:
                button.do(Hide())
                button.disable()

        for character in self.characters.values():
            self.add(character, 3)

        for nucleotide in self.dna:
            self.add(nucleotide, 2)

        self.add(bg, 0)
        self.add(self.youre_next, 4)
        self.add(self.click_anywhere, 4)
예제 #23
0
    def __init__(self, application):
        gtk.ScrolledWindow.__init__(self)

        self.observer = Observer()

        self.objects = dict()

        from canvas import Canvas
        self.canvas = Canvas(application)

        self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)

        properties = gtk.VBox()
        self.add_with_viewport(properties)

        self.group = gtk.SizeGroup(gtk.SIZE_GROUP_HORIZONTAL)

        #---START-------------------------------------------------------
        button = Button(_("General properties"))
        properties.pack_start(button, False, False)

        form = Form("general", self)
        button.add(form)

        form.add_section(_("Units"))

        entry = gtk.combo_box_new_text()
        entry.append_text(CENTIMETERS)
        entry.append_text(MILLIMETERS)
        entry.append_text(DOTS)
        entry.append_text(INCHES)
        entry.set_active(1)

        form.add_entry(_("Preferred linear unit"), entry, "linear-unit")

        entry = gtk.combo_box_new_text()
        entry.append_text(DEGREES)
        entry.append_text(RADIANS)
        entry.set_active(1)

        form.add_entry(_("Preferred angular unit"), entry, "angular-unit")
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Document properties"))
        properties.pack_start(button, False, False)

        form = Form("document", self)
        button.add(form)

        form.add_section(_("Size"))

        entry = LinearEntry()
        form.add_entry(_("Width"), entry, "width")

        entry = LinearEntry()
        form.add_entry(_("Height"), entry, "height")

        form.add_section(_("Margins"))

        entry = LinearEntry()
        form.add_entry(_("Top"), entry, "top-margin")

        entry = LinearEntry()
        form.add_entry(_("Bottom"), entry, "bottom-margin")

        entry = LinearEntry()
        form.add_entry(_("Left"), entry, "left-margin")

        entry = LinearEntry()
        form.add_entry(_("Right"), entry, "right-margin")

        form.add_section(_("Config"))

        entry = LinearEntry()
        form.add_entry(_("Grid size"), entry, "grid-size")

        entry = LinearEntry()
        form.add_entry(_("Guides size"), entry, "guides-size")

        entry = gtk.CheckButton(_("Show margins"))
        form.add_entry(None, entry, "margins-active")

        entry = gtk.CheckButton(_("Show guides"))
        form.add_entry(None, entry, "guides-active")

        entry = gtk.CheckButton(_("Show grid"))
        form.add_entry(None, entry, "grid-active")

        entry = gtk.CheckButton(_("Enable snap"))
        form.add_entry(None, entry, "snap")
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Line properties"))
        self.objects["Line"] = button
        properties.pack_start(button, False, False)

        form = SizedObjectForm("line", self)
        button.add(form)
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Box properties"))
        self.objects["Box"] = button
        properties.pack_start(button, False, False)

        form = ColorizedObjectForm("box", self)
        button.add(form)
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Rounded box properties"))
        self.objects["Rounded"] = button
        properties.pack_start(button, False, False)

        form = ColorizedObjectForm("rounded", self)
        button.add(form)

        form.add_section(_("Shape"))

        entry = LinearEntry()
        entry.set_value(0)
        form.add_entry(_("Radius"), entry, "radius")
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Text properties"))
        self.objects["Text"] = button
        properties.pack_start(button, False, False)

        form = ColorizedObjectForm("text", self)
        button.add(form)

        form.add_section(_("Format"))

        entry = gtk.FontButton()
        entry.connect("font-set", self.change_font)
        form.add_entry(_("Font"), entry, "font")

        entry = gtk.CheckButton(_("Preserve aspect"))
        entry.connect("toggled", self.preserve)
        form.add_entry(None, entry, "preserve")

        form.add_section(_("Text"))

        entry = TextPad(application)
        self.disconnect_handler = entry.buffer.connect("changed", self.changed)
        entry.connect("cursor-moved", self.cursor_moved)
        form.add_entry(None, entry, "text")
        #---END---------------------------------------------------------

        #---START--------ARC properties-----------------------------------------------
        button = Button(_("Arc properties"))
        self.objects["Arc"] = button
        properties.pack_start(button, False, False)

        form = ColorizedObjectForm("arc", self)
        button.add(form)

        form.add_section(_("Angle"))
        self.angle_start = AngularEntry()
        form.add_entry(_("Start Angle"), self.angle_start, "start")
        self.angle_start.spin.connect("value-changed", self.change_angle_start)

        self.angle_stop = AngularEntry()
        form.add_entry(_("Stop Angle"), self.angle_stop, "stop")
        self.angle_stop.spin.connect("value-changed", self.change_angle_stop)

        form.add_section(_("Other"))
        self.closed_btn = gtk.CheckButton()
        form.add_entry(_("Closed Arc"), self.closed_btn, "closed")
        self.closed_btn.connect("toggled", self.close_arc)

        self.closed_at_centre_btn = gtk.CheckButton()
        self.closed_at_centre_btn.set_active(1)
        form.add_entry(_("Closed Arc at Centre"), self.closed_at_centre_btn,
                       "closed-at-centre")
        self.closed_at_centre_btn.connect("toggled", self.close_at_centre_arc)
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Table properties"))
        self.objects["Table"] = button
        properties.pack_start(button, False, False)

        form = PositionedObjectForm("table", self)
        button.add(form)

        form.add_section(_("Spacing"))

        entry = LinearEntry()
        entry.set_value(0)
        form.add_entry(_("Vertical"), entry, "vertical-spacing")

        entry = LinearEntry()
        entry.set_value(0)
        form.add_entry(_("Horizontal"), entry, "horizontal-spacing")

        form.add_section(_("Size"))

        entry = LinearEntry()
        entry.set_value(1)
        entry.connect("value-changed", self.set_table_columns)
        form.add_entry(_("Columns"), entry, "columns")

        entry = LinearEntry()
        entry.set_value(5)
        entry.connect("value-changed", self.set_table_rows)
        form.add_entry(_("Rows"), entry, "rows")

        form.add_section(_("Color"))

        entry = gtk.ColorButton()
        form.add_entry(_("Stroke"), entry, "stroke")

        entry = gtk.ColorButton()
        form.add_entry(_("Fill"), entry, "fill")

        form.add_section(_("Format"))

        entry = gtk.FontButton()
        entry.connect("font-set", self.set_table_font)
        form.add_entry(_("Font"), entry, "font")

        form.add_section(_("Columns"))

        entry = ColumnsEditor()
        entry.add_column()
        entry.connect("width-edited", self.set_table_column_width)
        entry.connect("title-edited", self.set_table_column_title)
        form.add_entry(None, entry, "columns-editor")
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Barcode properties"))
        self.objects["BarCode"] = button
        properties.pack_start(button, False, False)

        form = ColorizedObjectForm("barcode", self)
        button.add(form)

        form.add_section(_("Barcode"))

        entry = gtk.combo_box_new_text()
        entry.connect("changed", self.changed_barcode_type)
        for type in sorted(barcodes, key=lambda type: barcodes[type]):
            entry.append_text(type)
        form.add_entry(_("Type"), entry, "type")

        entry = gtk.Entry()
        entry.connect("changed", self.changed_barcode_code)
        form.add_entry(_("Code"), entry, "code")
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Image properties"))
        self.objects["Image"] = button
        properties.pack_start(button, False, False)

        form = SizedObjectForm("image", self)
        button.add(form)

        form.add_section(_("Image"))

        def update_preview(dialog, preview):
            filename = dialog.get_preview_filename()
            try:
                pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
                    filename, 128, 128)
                preview.set_from_pixbuf(pixbuf)
                have_preview = True
            except:
                have_preview = False
            dialog.set_preview_widget_active(have_preview)

        dialog = gtk.FileChooserDialog(
            title="Source image file",
            #parent = self,
            action=gtk.FILE_CHOOSER_ACTION_OPEN,
            buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT, gtk.STOCK_OPEN,
                     gtk.RESPONSE_ACCEPT),
            backend=None)

        preview = gtk.Image()

        dialog.set_preview_widget(preview)
        dialog.connect("update-preview", update_preview, preview)

        #dialog.set_transient_for(self)
        dialog.set_default_response(gtk.RESPONSE_OK)

        def add_filter(dialog, name, pattern, type=None):
            filter = gtk.FileFilter()
            filter.set_name(name)
            if type:
                filter.add_mime_type(type)
            filter.add_pattern(pattern)
            dialog.add_filter(filter)

        add_filter(dialog, "PNG files", "*.png", "image/png")
        add_filter(dialog, "JPG files", "*.jpg", "image/jpg")
        add_filter(dialog, "All files", "*")

        dialog.connect("file-activated", self.changed_image_file)

        entry = gtk.FileChooserButton(dialog)
        form.add_entry(_("Image file"), entry, "file", True)
        #---END---------------------------------------------------------

        #---START-------------------------------------------------------
        button = Button(_("Chart properties"))
        self.objects["Chart"] = button
        properties.pack_start(button, False, False)

        form = SizedObjectForm("chart", self)
        button.add(form)

        form.add_section(_("Chart"))

        entry = gtk.combo_box_new_text()
        entry.connect("changed", self.changed_chart_type)
        for type in sorted(chart_types, key=lambda type: chart_types[type]):
            entry.append_text(type)
        form.add_entry(_("Type"), entry, "type")
        #---END---------------------------------------------------------

        fill = gtk.Label("\n")
        properties.add(fill)
예제 #24
0
    def __init__(self, director, victory_action, fail_action):

        self.director = director
        # self.mainGameLayer = mainGameLayer
        self.victory_action = victory_action
        self.fail_action = fail_action

        super().__init__()

        bg = GameBackground('../res/minigame3/minigame3_background.png')
        bg2 = GameBackground('../res/minigame3/nearplane.png')
        self.bg3 = cocos.sprite.Sprite(
            pyglet.image.load('../res/minigame3/longcloud.png'),
            position=(640, 360))
        self.pos = [1280, 720]

        self.dp = cocos.sprite.Sprite(pyglet.image.load(
            '../res/Profile_picture/Ligase_Active_Agent.png'),
                                      position=(350, 665))
        # self.dp = Button(350,665, '../res/Profile_picture/Helicase_Active_Agent.png', self, self.back, toAdjust=True)
        self.add(self.dp, 11)

        self.buttons = {}

        # self.buttons['boi'] = Button(640,360, '../res/boi.png', self, self.back, isSpriteSheet=True)

        # self.do_list.reverse()
        self.game_counter = 0
        self.alive_nucleotides = 5
        self.buffer = 0

        self.objects_hit = 0
        self.missed = 0

        self.buttons['back'] = Button(53, 666, '../res/main_left.png', self,
                                      self.back)
        self.buttons['back'].setHasHighlight('../res/main_left_h.png')

        self.strand = [
            'a' if x == 0 else
            't' if x == 1 else 'c' if x == 2 else 'g' if x == 3 else 'b'
            for x in [random.randrange(0, 4) for i in range(0, 60)]
        ]

        # self.land_blocks = {}
        self.dna = []
        anchor = [0, 0]
        for base in self.strand:
            block = Button(1236 + anchor[0], 162 + anchor[1],
                           '../res/minigame3/block_' + base + '.png', self,
                           self.back)
            block.move_right_inf()

            self.dna.append(block)

            anchor = [anchor[0] - 120, anchor[1]]

        # self.counter_strand = 'atcgabctgagcbtagcbtagbctagbctagbctag'
        self.counter_strand = [
            'a' if x == 't' else
            'g' if x == 'c' else 'c' if x == 'g' else 't' if x == 'a' else 'b'
            for x in self.strand
        ]

        # self.num_to_random = [x for x in ]
        self.num_to_random = 20
        # counter = self.num_to_random
        self.rand_list = random.sample(range(7, len(self.strand)),
                                       self.num_to_random)
        self.rand_list.sort()
        # self.rand_list.reverse()

        # self.blank_counter_strand = ['b' if index in self.rand_list else x for index, x in enumerate(self.counter_strand)]

        self.counter_dna = []
        self.ammo = []

        anchor = [0, 0]
        for index, base in enumerate(self.counter_strand):
            # print('yo')
            # if not base == 'b':
            block = Button(1200 + anchor[0], 83 + anchor[1],
                           '../res/minigame3/block_' + base + '.png', self,
                           self.back)
            block.move_right_inf()

            self.counter_dna.append(block)

            anchor = [anchor[0] - 120, anchor[1]]

            if index in self.rand_list:

                block.spr.do(Hide())
                print('ammo index', index)

                self.ammo.append(
                    'a' if self.strand[index] == 't' else 'g' if self.
                    strand[index] == 'c' else 'c' if self.strand[index] ==
                    'g' else 't' if self.strand[index] == 'a' else 'b')

        self.dna.reverse()
        # self.counter_dna.reverse()
        # self.ammo.reverse()

        self.deployed_ammo = 0
        self.ammo_blocks = []
        # anchor = [0,0]
        for index, base in enumerate(self.ammo):
            # print('yo')
            # if not base == 'b':
            block = Button(970, 549, '../res/minigame3/block_' + base + '.png',
                           self, self.back)
            block.target_hit_action = self.hit_object
            block.target_miss_action = self.missed_object
            block.spr.do(Hide())
            # block.move_right_inf()

            self.ammo_blocks.append(block)

        # self.ammo_blocks.reverse()

        self.characters = {}
        self.characters['squirrelboi'] = Button(
            970, 549, '../res/minigame3/squirrelboi.png', self, self.back)
        # self.characters['squirrelboi'] = Button(970,549,'../res/minigame3/squirrelboi.png', self, self.back)
        self.characters['squirrelboi'].move_up_and_down()

        for button in self.buttons.values():
            self.add(button, 5)

        for block in self.dna:
            self.add(block, 1)

        self.counter_dna.reverse()
        for block in self.counter_dna:
            self.add(block, 2)
        self.counter_dna.reverse()

        for block in self.ammo_blocks:
            self.add(block, 1)

        for block in self.characters.values():
            self.add(block, 3)

        # for nucleotide in self.dna:
        #     self.add(nucleotide, 2)

        self.add(bg, 0)
        self.add(self.bg3, 1)
        self.add(bg2, 3)
        self.add(Bomb_Deployer(self, self.deployed))

        self.bg3.do(Repeat(MoveBy((10, 0), 1)))
        th.start_new_thread(self.endgame_checker, ())
예제 #25
0
    def update_buttons(self, b_press=set()):
        """Renderöi kaikki napit ja nappien värin vaihdon

        Args:
            b_press (set(str), valinnainen): Renderöi kaikki setissä olevat napit painetuiksi.
        """
        b_size = 70
        x = self.m_x + self.cell_size * self.game.get_size()
        y = self.cell_size * self.game.get_size()

        b_press_up_color = (0, 0, 220)
        b_press_down_color = (0, 0, 100)
        y_margin = 30

        if "b_up" in b_press:
            b_color = b_press_down_color
        else:
            b_color = b_press_up_color
        b_up = Button(
            tag="b_up",
            text=None,
            text_color=None,
            img_file_str=self.files.get_button_up_img_str(),
            b_color=b_color,
            position=((((self.screen_size[0] - x) // 2) + x) - (b_size // 2),
                      (self.m_y + y // 2) - b_size * 1.5 + y_margin),
            size=(b_size, b_size),
            rotate=0)

        if "b_down" in b_press:
            b_color = b_press_down_color
        else:
            b_color = b_press_up_color
        b_down = Button(tag="b_down",
                        text=None,
                        text_color=None,
                        img_file_str=self.files.get_button_up_img_str(),
                        b_color=b_color,
                        position=((((self.screen_size[0] - x) // 2) + x) -
                                  (b_size // 2), (self.m_y + y // 2) -
                                  b_size * 1.5 + b_size * 2 + y_margin),
                        size=(b_size, b_size),
                        rotate=180)

        if "b_right" in b_press:
            b_color = b_press_down_color
        else:
            b_color = b_press_up_color
        b_right = Button(
            tag="b_right",
            text=None,
            text_color=None,
            img_file_str=self.files.get_button_up_img_str(),
            b_color=b_color,
            position=((((self.screen_size[0] - x) // 2) + x) - (b_size // 2) +
                      b_size,
                      (self.m_y + y // 2) - b_size * 1.5 + b_size + y_margin),
            size=(b_size, b_size),
            rotate=-90)

        if "b_left" in b_press:
            b_color = b_press_down_color
        else:
            b_color = b_press_up_color
        b_left = Button(tag="b_left",
                        text=None,
                        text_color=None,
                        img_file_str=self.files.get_button_up_img_str(),
                        b_color=b_color,
                        position=((((self.screen_size[0] - x) // 2) + x) -
                                  (b_size // 2) - b_size, (self.m_y + y // 2) -
                                  b_size * 1.5 + b_size + y_margin),
                        size=(b_size, b_size),
                        rotate=90)

        self.buttons.add(b_up)
        self.buttons.add(b_down)
        self.buttons.add(b_right)
        self.buttons.add(b_left)

        if "b_restart" in b_press:
            b_color = (100, 0, 0)
        else:
            b_color = (200, 0, 0)
        b_restart = Button(tag="b_restart",
                           text="Restart",
                           text_color=(240, 240, 240),
                           img_file_str=self.files.get_button_img_str(),
                           b_color=b_color,
                           position=((((self.screen_size[0] - x) // 2) + x) -
                                     (90 // 2) - 90 // 1.5, self.m_y),
                           size=(90, 35),
                           rotate=0)

        if "b_menu" in b_press:
            b_color = (100, 0, 0)
        else:
            b_color = (200, 0, 0)
        b_menu = Button(tag="b_menu",
                        text="Menu",
                        text_color=(240, 240, 240),
                        img_file_str=self.files.get_button_img_str(),
                        b_color=b_color,
                        position=((((self.screen_size[0] - x) // 2) + x) -
                                  (90 // 2) + 90 // 1.5, self.m_y),
                        size=(90, 35),
                        rotate=0)

        self.buttons.add(b_restart)
        self.buttons.add(b_menu)

        self.all_sprites.add(self.buttons)
예제 #26
0
    def __init__(self, director, victory_action, fail_action, strand=None):
        
        self.director = director
        self.victory_action = victory_action
        self.fail_action = fail_action

        super().__init__()

        self.finish_level_pictures = {}
        # self.finish_level_pictures['0']=cocos.
        for i in range(0,5):
            self.finish_level_pictures[str(i)] = cocos.sprite.Sprite(pyglet.image.load('../res/minigame1/End/'+str(i)+'.png'), position=(640,360))

        # bg = GameBackground('../res/minigame1/end/click anywhere to continue.png')

        self.dp = Button(350,665, '../res/Profile_picture/Helicase_Active_Agent.png', self, self.victory_action)
        self.add(self.dp, 11)

        self.accomplished_targets = 0
        self.target_eliminated = False

        self.bg_index = 0

        self.completed = False
        self.victory = False

        self.img_to_assign = pyglet.image.load('../res/minigame1/punch.png')

        self.to_clean = []

        self.buttons = {}

        self.buttons['back'] = Button(53,666, '../res/main_left.png', self, self.back)
        self.buttons['back'].setHasHighlight('../res/main_left_h.png')

        self.finish_button = Button(640, 360, '../res/minigame1/finish_level_button.png', self, self.next_image)
        self.finish_button.disable()


        # if strand == None:
        # self.strand = list('a') # defines the left strand
        # else:
        #     self.strand = strand

        self.strand = [ 'a' if x == 0 else 
                        't' if x == 1 else
                        'c' if x == 2 else
                        'g' if x == 3 else
                        'b' for x in [random.randrange(0,4) for i in range(0,20)]]
        self.strand.reverse()
        self.counter_strand = [ 'a' if x == 't' else 
                                't' if x == 'a' else
                                'c' if x == 'g' else
                                'g' if x == 'c' else
                                'b' for x in self.strand]

        print('strand', self.strand)
        self.game_counter = len(self.strand)-1
        print('counter_strand', self.counter_strand)

        self.backgrounds = []
        for index, base in enumerate(self.strand):
            bg_pair = [cocos.sprite.Sprite(pyglet.image.load('../res/minigame1/left_'+base+'.png'),position=(640,360)),
                                cocos.sprite.Sprite(pyglet.image.load('../res/minigame1/right_'+self.counter_strand[index]+'.png'),position=(640,360))]
            self.backgrounds.append(bg_pair)
            self.add(bg_pair[0], 1)
            self.add(bg_pair[1], 1)

        self.targets = []
        for base in self.strand:
            for i in range(0,3):
                random_coordinate = (random.randint(200, 1080), random.randint(200, 520))
                target = Button(*random_coordinate, '../res/minigame1/TARGET.png', self, self.target_clicked, isSpriteSheet=True)
                target.hide()
                self.targets.append(target)
                self.add(target,3)

        for button in self.buttons.values():
            self.add(button, 2)

        self.ad = Arm_Deployer(self,self.back)

        self.add(self.ad,4)
        # self.add(self.finish_level_pictures[0],0)   
        for i in range(4,-1,-1):
            self.add(self.finish_level_pictures[str(i)],0)

        self.add(self.finish_button,0)

        # th.start_new_thread(self.run_game, ())
        self.generate_target()
예제 #27
0
# Values start maxed out
tree_parameters = {
    'pos': ((WINDOW_WIDTH - 400) / 2 + 400, WINDOW_HEIGHT),
    'angle': 90,
    'tick': 15,
    'vel': 10,
    'number': 14,
    'division_ratio': 2,
    'division_angle': 90,
    'divide_angles': True,
    'divide_distance': True,
    'fruits': False
}

buttons = {
    'button_reset': Button((50, WINDOW_HEIGHT - 125, 300, 75), 'Reset', outline_width=4),
    'button_hide': Button((415, 25, 25, 25), '<', size=30, outline_width=2)

}

sliders = {
    'slider_number': Slider((50, WINDOW_HEIGHT - 225, 300, 75), 'Divisions', tree_parameters['number']),
    'slider_division_ratio': Slider((50, WINDOW_HEIGHT - 350, 300, 75), 'Division Ratio', tree_parameters['division_ratio']),
    'slider_division_angle': Slider((50, WINDOW_HEIGHT - 475, 300, 75), 'Division Angle', tree_parameters['division_angle'])
}

checkboxes = {
    'checkbox_divide_angles': CheckBox((50, 200), 'Divide Angles'),
    'checkbox_divide_distance': CheckBox((50, 125), 'Divide Distance'),
    'checkbox_fruits': CheckBox((50, 50), "Spawn 'Fruits'")
}
예제 #28
0
    def update_pop_ups(self, tag: str, b_press=set()):
        """Renderöi pop-up ikkunat näkyville tagin perusteella. Myös sen napit.

        Args:
            tag (str): mikä pop-up ikkuna halutaan näkyville.
            b_press (set(str), valinnainen): Renderöi kaikki setissä olevat napit painetuiksi.
        """
        size = (350, 250)
        x = (self.screen_size[0] - size[0]) // 2
        y = (self.screen_size[1] - size[1]) // 2
        restart_pop = Tile(0, x, y, color=(100, 100, 100))
        restart_pop.color = (230, 200, 200)
        restart_pop.image = pg.transform.scale(restart_pop.img, size)
        self.pop_ups.add(restart_pop)

        # Buttons:

        margin = 15
        b_size = (90, 35)
        if "b_yes" in b_press:
            b_color = (0, 100, 0)
        else:
            b_color = (0, 200, 0)
        b_yes = Button(tag="b_yes",
                       text="Yes",
                       text_color=(240, 240, 240),
                       img_file_str=self.files.get_button_img_str(),
                       b_color=b_color,
                       position=(x + size[0] // 2 - b_size[0] * 1.5 + 20,
                                 y + size[1] // 1.5),
                       size=b_size,
                       rotate=0)

        if "b_no" in b_press:
            b_color = (100, 0, 0)
        else:
            b_color = (200, 0, 0)
        b_no = Button(tag="b_no",
                      text="No",
                      text_color=(240, 240, 240),
                      img_file_str=self.files.get_button_img_str(),
                      b_color=b_color,
                      position=(x + size[0] // 2 + b_size[0] * .5 - 20,
                                y + size[1] // 1.5),
                      size=b_size,
                      rotate=0)

        self.pop_up_buttons.add(b_yes)
        self.pop_up_buttons.add(b_no)

        # Text:
        x = x + margin
        y = y + margin
        s = ""
        if tag == "restart":
            s = "Are you sure you want restart?"
        elif tag == "menu":
            s = "Return to the main menu?"
        text = Text(s, x, y, 25, (255, 255, 255), size[0] - margin * 2, 40,
                    (100, 100, 100))

        self.pop_ups.add(text)
예제 #29
0
    def process(self):
        # Load Image
        slitherPosterImg = utility.loadImage("2017_slither_poster")
        slitherPosterImg = utility.resizeImage(slitherPosterImg, (800, 600))
        slitherPosterRect = slitherPosterImg.get_rect()
        slitherPosterRect.center = SCREEN_MID

        # Load Sound
        introBMG = utility.loadSound("BGM")
        introBMG.set_volume(0.3)

        # event
        mEventDistributor = pygameEventDistributor(GAME_INTRO_LISTENING_EVENT)
        mEventDistributor.listen(
            Request("GameIntro_quit", self._quit, addtionalTarget=pygame.QUIT))
        mTickEventHandler = tickEventHandler.TickEventHandler(
            mEventDistributor)

        # button settings
        buttonSize = (150, 40)
        fontSize = 30
        padding_x = 150
        padding_y = 150

        # make button
        player1Btn = Button(self.returnP1HS,
                            text="1 player",
                            alignment=BOTTOM_LEFT,
                            location=(0 + padding_x,
                                      SCREEN_HEIGHT - padding_y),
                            buttonSize=buttonSize,
                            fontSize=fontSize)
        player1Btn.listen(mTickEventHandler)
        player2Btn = Button(self.returnP2C,
                            text="2 players",
                            alignment=BOTTOM_RIGHT,
                            location=(SCREEN_WIDTH - padding_x,
                                      SCREEN_HEIGHT - padding_y),
                            buttonSize=buttonSize,
                            fontSize=fontSize)
        player2Btn.listen(mTickEventHandler)
        quitBtn = Button(self._quit,
                         text="quit",
                         alignment=BOTTOM_MIDDLE,
                         location=(SCREEN_WIDTH / 2, SCREEN_HEIGHT),
                         buttonSize=buttonSize,
                         fontSize=fontSize,
                         backgroundColor=RED)
        quitBtn.listen(mTickEventHandler)

        # make text
        title = Text(color=BLUE,
                     text="Slither Game by Enjoeyland",
                     fontSize=40,
                     location=(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 4),
                     alignment=TOP_MIDDLE)

        # merge(make intro page)
        groupIntro = pygame.sprite.Group()
        groupIntro.add(player1Btn)
        groupIntro.add(player2Btn)
        groupIntro.add(quitBtn)
        groupIntro.add(title)

        utility.playSound(introBMG, loops=PLAY_INFINITELY)

        while self.__changedGameState == None:

            mEventDistributor.distribute()

            self.screen.fill(SCREEN_BACKGROUND)

            self.screen.blit(slitherPosterImg, (0, 0))

            groupIntro.update()
            groupIntro.draw(self.screen)

            pygame.display.update()
            pygame.time.Clock().tick(10)

        introBMG.fadeout(2)
        return self.__changedGameState