def __init__(self):
        super(LoadingScene, self).__init__()
        # 开启事件处理层 有事件发生 就要写
        cocos.layer.Layer.is_event_handler = True
        d_width, d_height = cocos.director.director.get_window_size()

        # 创建背景精灵
        background = cocos.sprite.Sprite('Resource//loading_scene//background.png')
        background.position = d_width // 2, d_height // 2

        # 创建标题精灵
        title = cocos.sprite.Sprite('Resource//loading_scene//title.png')
        title.position = d_width // 2, d_height // 2

        delay_move_to = Delay(1.0)
        move_to = MoveTo((d_width // 2, d_height // 5 * 3), 2)
        title.do(delay_move_to + move_to)

        sub_title = cocos.sprite.Sprite('Resource//loading_scene//sub_title.png')
        sub_title.position = d_width // 2, d_height // 7 * 3
        sub_title.opacity = 0
        fade_in = FadeIn(2.0)
        delay_fade_in = Delay(2)
        sub_title.do(delay_fade_in + fade_in)

        self.add(background)
        self.add(title)
        self.add(sub_title)
Example #2
0
	def set_slide(self, slide, change='normal'):
		self.get('clock').clock_shown(slide.show_clock)
		
		out_layer=self.get('slide')
		in_layer=self.__get_slide_layer(slide)
		try:
			self.remove('temp')
		except Exception:
			pass # no transition running.
		try:
			self.remove('temp_col')
		except Exception:
			pass # no transition running.
		self.remove('slide')

		self.add(out_layer, z=1, name='temp')
		self.add(in_layer, z=0, name='slide')

		transition=config.effect_mapping[change][slide.effect]
		logger.debug("Changing slide with transition: %s", transition)
		if transition == 'tile_swipe':
			out_layer.do(FadeOutBLTiles(grid=(16, 9), duration=1) + Hide() + StopGrid())
		elif transition == 'crossfade':
			out_layer.do(FadeOut(duration=1))
		elif transition == 'fade_red':
			col_layer=ColorLayer(255, 0, 0, 0)
			self.add(col_layer, z=1.1, name='temp_col')
			col_layer.do(FadeIn(duration=0.3)+Delay(0.5)+FadeOut(duration=1.5))
			out_layer.do(Delay(0.3) + Hide())
		else:
			out_layer.do(Hide())
Example #3
0
    def __init__(self):
        super(Game, self).__init__(102, 102, 225, 255)

        self.collision_manager = cm.CollisionManagerBruteForce()

        self.player = cocos.sprite.Sprite('eleph2.png')
        self.player.position = 400, 25
        self.player.velocity = 0, 0
        self.player.speed = 150
        self.player.scale = .5
        self.add(self.player, z=2)

        self.player.cshape = cm.AARectShape(self.player.position,
                                            self.player.width // 2,
                                            self.player.height // 2)
        self.collision_manager.add(self.player)

        self.boss = cocos.sprite.Sprite('flaregun.png')
        self.boss.position = 400, 600
        self.boss.scale = 0.4
        self.add(self.boss, z=1)

        self.boss.cshape = cm.AARectShape(self.boss.position,
                                          self.boss.width // 2,
                                          self.boss.height // 2)
        self.collision_manager.add(self.boss)

        self.batch = cocos.batch.BatchNode()
        self.enemies = [cocos.sprite.Sprite('compass.png') for i in range(6)]
        positions = ((250, 125), (550, 125), (300, 325), (500, 325),
                     (150, 475), (650, 475))
        for num, enem in enumerate(self.enemies):
            enem.position = positions[num]
            enem.cshape = cm.AARectShape(enem.position, enem.width // 2,
                                         enem.height // 2)
            self.collision_manager.add(enem)
            self.batch.add(enem)

        self.add(self.batch, z=1)
        self.player.do(Move())

        move_basic = MoveBy((120, 0), 1)
        self.enemies[0].do(Repeat(move_basic + Reverse(move_basic)))
        self.enemies[1].do(Repeat(Reverse(move_basic) + move_basic))

        move_complex = (MoveBy((-75, 75), 1) + Delay(0.5) + MoveBy(
            (-75, -75), 1) + Delay(0.5) + MoveBy(
                (75, -75), 1) + Delay(0.5) + MoveBy((75, 75), 1) + Delay(0.5))
        self.enemies[2].do(Repeat(move_complex))
        self.enemies[3].do(Repeat(Reverse(move_complex)))

        move_jump = AccelDeccel(JumpBy((200, 0), 75, 3, 3))
        move_jump_rot = AccelDeccel(RotateBy(360, 3))
        self.enemies[4].do(Repeat(move_jump + Reverse(move_jump)))
        self.enemies[4].do(Repeat(move_jump_rot + Reverse(move_jump_rot)))
        self.enemies[5].do(Repeat(Reverse(move_jump) + move_jump))
        self.enemies[5].do(Repeat(Reverse(move_jump_rot) + move_jump_rot))

        self.schedule(self.update)
Example #4
0
    def _add_animation(self, node, drink):
        """
        Construct an animation path for the label.
        """
        node.scale = 0.5

        content_offset = (node.scale * node.label.element.content_width +
                          self._drink_distance) / 2

        # Make sure only one item has focus
        minimum_offset = (
            (self._focus_length + self._focus_ramp) * self._screen_width) / 2
        if content_offset < minimum_offset:
            content_offset = minimum_offset

        content_time = float(content_offset) / self._scroll_speed

        # Set start position
        node.position = (self._screen_width + content_offset, self._ticker_y)

        # Construct the path
        # Move to beginning of screen
        (coordinates, _) = self._path[0]
        move_actions = MoveTo(coordinates, content_time)

        # Move to ramp up
        (coordinates, time) = self._path[1]
        move_actions += MoveTo(coordinates, time)

        # Do the ramp
        (coordinates, time) = self._path[2]
        move_actions += (MoveTo(coordinates, time) |
                         (Delay(time / 2) + ScaleTo(1, time / 2))
                         | CallFunc(self._set_focused_drink, drink))

        # Move in focus
        (coordinates, time) = self._path[3]
        move_actions += MoveTo(coordinates, time)

        # Ramp down
        (coordinates, time) = self._path[4]
        move_actions += MoveTo(coordinates, time) | (ScaleTo(0.5, time / 2))

        # Move to end of screen
        (coordinates, time) = self._path[5]
        move_actions += MoveTo(coordinates, time)

        # Move out of sight
        move_actions += MoveTo((0 - content_offset, self._ticker_y),
                               content_time)

        # Prepare spawn point
        spawn_actions = Delay(content_time * 2) + CallFunc(self._next_drink)
        self.do(spawn_actions)

        # Start animation
        node.do(move_actions + CallFunc(self._safe_kill, node))
Example #5
0
    def __init__(self):
        super(TestLayer, self).__init__()

        self.add(TestFigure())
        self.schedule(lambda x: 0)
        if autotest:
            self.do(
                Delay(1.0) + CallFunc(self.upscale) + Delay(1.0) +
                CallFunc(self.upscale))
Example #6
0
 def on_mouse_press(self, x, y, buttons, modifiers):
     left = self.parent.get('left')
     right = self.parent.get('right')
     if buttons == 4:
         if left.selected:
             self.do(Delay(0.5) + CallFunc(left.inactivate))
         elif right.selected:
             self.do(Delay(0.5) + CallFunc(right.inactivate))
         else:
             self.cancel()
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()

        self.sprite = Sprite('grossini.png', (x // 4, y // 2))
        self.add(self.sprite)
        self.sprite.do(Delay(1) + ToggleVisibility())

        self.sprite2 = Sprite('grossini.png', (x // 4 * 3, y // 2))
        self.sprite2.visible = False
        self.add(self.sprite2)
        self.sprite2.do(Delay(1) + ToggleVisibility())
Example #8
0
 def __init__(self):
     super(TestScene, self).__init__()
     scroller = layer.ScrollingManager()
     scrollable = tiles.load('road-map.xml')['map0']
     scroller.add(scrollable)
     self.add(scroller)
     template_action = (CallFunc(scroller.set_focus, 0, 0) + Delay(1) +
                        CallFunc(scroller.set_focus, 768, 0) + Delay(1) +
                        CallFunc(scroller.set_focus, 768, 768) + Delay(1) +
                        CallFunc(scroller.set_focus, 1500, 768) + Delay(1) +
                        ScaleTo(0.75, 1) +
                        CallFunc(scrollable.set_debug, True) + Delay(1) +
                        CallFunc(director.window.set_size, 800, 600))
     scroller.do(template_action)
    def __init__(self):
        super( HelloWorld, self ).__init__()

        # a cocos.text.Label is a wrapper of pyglet.text.Label
        # with the benefit of being a cocosnode
        self.label = cocos.text.Label('Hi',
            font_name='Times New Roman',
            font_size=32,
            x=320, y=240,
            anchor_x='center', anchor_y='center')
        self.add( self.label )
        if autotest:
            self.do( Delay(1) + CallFunc(self.move_label, 100, 100) +
                     Delay(1) + CallFunc(self.move_label, 500, 300))
Example #10
0
    def attack(self, target, gameMap):
        from maps import Vertex
        if type(target) == Vertex or (
            (issubclass(type(target), Troop) or type(target) == Firewall)
                and target.pid != self.pid):
            # Clicked a vertex or an enemy troop or an enemy Firewall
            if type(target) != Vertex:
                target = target.curVertex
            path = gameMap.get_path(self.curVertex, target, self.pid, self,
                                    "attack")
            if path and len(path) <= self.attackRange + 1:
                self.attackingPath = path
                self.is_attacking = True

                # Move the Ping Of Death to the dest vertex
                pingOfDeathAction = Delay(0)

                for vertexID in path:
                    vertex = gameMap.vertices[vertexID]
                    pingOfDeathAction += MoveTo(vertex.position, self.speed)

                # Execute Ping Of Death!
                pingOfDeathAction += CallFunc(self.POD, target)

                controller = objects.Objects.get_controller()
                pingOfDeathAction += CallFunc(controller.remove_unit, self)
                self.do(pingOfDeathAction)
                return True
        return False
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()
        self.color1 = [255, 0, 0, 255]
        self.color2 = [0, 0, 255, 255]

        self.label = Label('', (x // 2, y // 2))
        self.label.do(Rotate(360, 10))
        self.label.do(
            Repeat(
                Delay(1) + CallFunc(self.set_color, 0) + Delay(1) +
                CallFunc(self.set_color, 1) + Delay(1) +
                CallFunc(self.set_color, 2)))
        self.add(self.label)
        self.set_color(2)
Example #12
0
    def level_up(self):
        if self.i == self.level:
            if self.flag:
                director.window.push_handlers(self.parent)
                self.flag = False
                del self
            return
        self.info_clear(1)
        self.info_clear(2)
        self.info_clear(3)
        
        content_origin = ['Origin']
        for ability in self.abilities:
            content_origin.append(str(self.origin[ability]))
        self.display(content_origin, font_size=20, contentid=1,
                     pos_range=((self.width // 3, 0), (self.width * 5 // 9, self.height)))
        growth = self.growthlist[self.i]
        content_grow = ['Grow']
        for ability in self.abilities:
            content_grow.append(str(growth[ability]))
        self.display(content_grow, font_size=20, contentid=2,
                     pos_range=((self.width*5//9, 0), (self.width*7//9, self.height)))
        content_new = ['New']
        for ability in self.abilities:
            self.origin[ability] = growth[ability] + self.origin[ability]
            content_new.append(str(self.origin[ability]))
        self.display(content_new, font_size=20, contentid=3,
                     pos_range=((self.width *7//9, 0), (self.width, self.height)))


        self.do(Delay(0.5) + CallFunc(self.bar_raise))
        self.i += 1
Example #13
0
    def __init__(self, pos):
        super().__init__(Image.coin)

        self.position = pos
        self.scale = 0.8

        self.do(MoveBy((0, 35), 0.1) + Delay(0.1) + CallFunc(self.kill))
Example #14
0
 def on_enter(self):
     # handler's auto registration only happens for window's events;
     # we want to listen director events, so explicitly registering
     super(AutocenteredBackgroundLayer,self).on_enter()
     director.push_handlers(self.on_cocos_resize)
     if autotest:
         self.do(Delay(2.0) + CallFunc(resize) )
Example #15
0
    def __init__(self, image, pos, maplayer):
        super().__init__(image, pos, maplayer)

        self.velocity = (50, 0)
        self.visible = False

        self.do(Delay(0.3) + Show() + ShowProp() + MoveActor())
Example #16
0
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()

        template_action = Delay(2) + Blink(3, 3)
        self.sprite = Sprite('grossini.png', (x // 2, y // 2))
        self.add(self.sprite)
        self.sprite.do(template_action)

        self.sprite2 = Sprite('grossinis_sister1.png',
                              (x // 2 + 50, y // 2 + 50))
        self.sprite2.scale = 0.5
        self.sprite2.visible = False
        self.add(self.sprite2)
        self.sprite2.do(Delay(3) + template_action)
Example #17
0
    def pkmn_center_door(self, x: int, y: int) -> None:
        """Animate the pkmn center door opening or closing.

        :param x: The x coordinates of the pkmn center door.
        :param y: The y coordinates of the pkmn center door.
        """

        reverse = True if "pkmn_center_door" in self._scroller.children_names else False

        tileset = pyglet.image.load(PATH + "/assets/map/pkmn_center_door.png")
        tileset_grid = pyglet.image.ImageGrid(tileset, 1, 4, MapScene.TILE_SIZE, tileset.height)
        tileset_anim = pyglet.image.Animation.from_image_sequence(
            reversed(tileset_grid) if reverse else tileset_grid,
            0.1,
            loop=False
        )
        animation = cocos.sprite.Sprite(tileset_anim)
        animation.position = (x + MapScene.TILE_SIZE / 2, y + MapScene.TILE_SIZE + tileset.height / 2)

        scrollable_layer = cocos.layer.ScrollableLayer()
        scrollable_layer.add(animation)

        if reverse:
            self._scroller.remove("pkmn_center_door")
            callback = lambda: self._scroller.remove("pkmn_center_door")
            self.do(Delay(0.4) + CallFunc(callback))

        self._scroller.add(scrollable_layer, z=1, name="pkmn_center_door")
Example #18
0
    def _replace_node(self, new_node):
        """
        Move a new node into display, slow animation.
        """
        if not self.is_running:
            if debug_mode:
                print("Not running")
            if self._current_node:
                self._current_node.kill()
                self._current_node = None

            return

        if self._current_node:
            self._current_node.do(
                MoveTo(self._point_offscreen_left, 0.5 * self._move_time) +
                CallFunc(self._current_node.kill))

        self._current_node = UpdatableNode(new_node,
                                           self._point_offscreen_right)

        self._current_node.do(
            Delay(0.5 * self._move_time) +
            MoveTo(self._point_onscreen, 0.5 * self._move_time))
        self.add(self._current_node)
Example #19
0
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()

        self.sprite = Sprite('grossini.png', (x / 2, y / 2))
        self.add(self.sprite)
        self.sprite.do(Delay(1) + Hide())
Example #20
0
 def set_angle_action(self, proportion, max_duration=4, min_duration=2):
     angle = 360 - proportion * 360
     delta = abs(self.angles - angle)
     if delta <= 10:
         return self.right_ring, Delay(min_duration)
     duration = min(1, delta / 90) * (max_duration - min_duration)
     if self.angles > angle: # right rotation
         if angle >= 180:
             return self.right_ring, (Delay(0.5) + RotateTo(180, duration + min_duration) + CallFunc(self.change_angle, angle))
         elif self.angles <= 180:
             return self.right_ring, (Delay(0.5) + RotateTo(angle, duration + min_duration) + CallFunc(self.change_angle, angle))
         else:
             d1 = (duration + min_duration) * (self.angles - 180) / delta
             d2 = duration + min_duration - d1
             return self.right_ring, (Delay(0.5) + RotateTo(180, d1)
                                + RotateBy(angle - 180, d2) + CallFunc(self.change_angle, angle))
     else: #
         if angle <= 180:
             return self.right_ring, (Delay(0.5) + RotateTo(angle, duration + min_duration) + CallFunc(self.change_angle, angle))
         elif self.angles >= 180:
             return self.right_ring, (Delay(0.5) + RotateTo(angle, duration + min_duration) + CallFunc(self.change_angle, angle))
         else:
             d1 = (duration + min_duration) * (180 - self.angles) / delta
             d2 = duration + min_duration - d1
             return self.right_ring, (Delay(0.5) + RotateBy(180 - self.angles, d1)
                                + RotateBy(angle - 180, d2) + CallFunc(self.change_angle, angle))
Example #21
0
 def getHit(self):
     if self.is_dead_scene_Playing == False and self.is_shield == False:
         self.total_lives -= 1
         self.revive_Pattern = Place(self.startLocation) + CallFunc(
             self.revive) + Blink(4, 2) + CallFunc(self.shieldoff)
         self.deadtemplate = Delay(0.5) + CallFunc(self.destroy)
         self.die()
         if self.total_lives <= 0:
             director.replace(FadeTransition(FinishScene(self.gScene)))
    def __init__(self, sequence, bpm):
        super().__init__()
        self.left_foot = Sprite("./images/flat-black-l.png")
        self.right_foot = Sprite("./images/flat-black-r.png")

        self.left_foot.position = 200, 200
        self.right_foot.position = 300, 200
        self.add(self.left_foot)
        self.add(self.right_foot)

        speed = 60 / bpm
        dance = [s(speed) for s in sequence]

        right_leg_sequence = chain(*(step[0] for step in dance))
        left_leg_sequence = chain(*(step[1] for step in dance))

        self.right_foot.do(Repeat(sum(right_leg_sequence, Delay(0))))
        self.left_foot.do(Repeat(sum(left_leg_sequence, Delay(0))))
Example #23
0
    def raise_flag(self, x):
        ground_y = Mario.GROUND_POS_Y[self.state]

        def lower_flag():
            self.image = Image.mario_lower_flag[self.state]

            delta_y = ground_y - self.y + 16
            self.do(MoveBy((8, 0), 0.2) + MoveBy((0, delta_y), 1.8))

        def turn_around_after_lower_flag():
            delta_y = ground_y - self.y
            self.do(MoveBy((16, 0), 0.1) + MoveBy((8, delta_y), 0.1))
            self.image = Image.mario_lower_flag_turn_around[self.state]

        self.do(
            CallFunc(lower_flag) + Delay(2) +
            CallFunc(turn_around_after_lower_flag) + Delay(0.5) +
            CallFunc(Sound.play, "stage_clear") + WalkToCastle((x, ground_y)) +
            CallFunc(self.kill))
Example #24
0
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()

        self.sprite = Sprite('grossini.png')
        self.add(self.sprite)
        self.sprite.do(MoveTo((x, y), 10))
        if autotest:
            self.do(Delay(1) + CallFunc(self.resize))
Example #25
0
    def update_timer(self, dt):
        stats.update_timer(dt)

        if stats.time == 100:
            Sound.stop("mario")
            Sound.play("out_of_time")
            self.do(Delay(2) + CallFunc(Sound.play, "mario"))

        if stats.time <= 0:
            self.game_over("timeout")
    def __init__(self):
        super(Game, self).__init__(102, 102, 225, 255)

        self.player = cocos.sprite.Sprite(resources.player)
        self.player.position = 400, 25
        self.player.velocity = 0, 0
        self.player.speed = 150
        self.add(self.player, z=2)

        self.boss = cocos.sprite.Sprite(resources.boss)
        self.boss.position = 400, 600
        self.boss.scale = 0.4
        self.add(self.boss, z=1)

        self.batch = cocos.batch.BatchNode()
        self.enemies = [cocos.sprite.Sprite(resources.enemy) for i in range(6)]
        positions = ((250, 125), (550, 125), (300, 325), (500, 325),
                     (150, 475), (650, 475))
        for num, enem in enumerate(self.enemies):
            enem.position = positions[num]
            self.batch.add(enem)

        self.add(self.batch, z=1)
        self.player.do(Move())

        move_basic = MoveBy((120, 0), 1)
        self.enemies[0].do(Repeat(move_basic + Reverse(move_basic)))
        self.enemies[1].do(Repeat(Reverse(move_basic) + move_basic))

        move_complex = (MoveBy((-75, 75), 1) + Delay(0.5) + MoveBy(
            (-75, -75), 1) + Delay(0.5) + MoveBy(
                (75, -75), 1) + Delay(0.5) + MoveBy((75, 75), 1) + Delay(0.5))
        self.enemies[2].do(Repeat(move_complex))
        self.enemies[3].do(Repeat(Reverse(move_complex)))

        move_jump = AccelDeccel(JumpBy((200, 0), 75, 3, 3))
        move_jump_rot = AccelDeccel(RotateBy(360, 3))
        self.enemies[4].do(Repeat(move_jump + Reverse(move_jump)))
        self.enemies[4].do(Repeat(move_jump_rot + Reverse(move_jump_rot)))
        self.enemies[5].do(Repeat(Reverse(move_jump) + move_jump))
        self.enemies[5].do(Repeat(Reverse(move_jump_rot) + move_jump_rot))
Example #27
0
    def level_up(self):
        print(self.i, self.level)
        if self.i >= self.level:
            if self.flag:
                print('end')
                self.flag = False
                self.do(Delay(0.5) + CallFunc(self._callback))
                return
        self.info_clear(1)
        self.info_clear(2)
        self.info_clear(3)

        content_origin = ['Origin']
        for ability in self.abilities:
            content_origin.append(str(self.origin[ability]))
        self.display(content_origin,
                     font_size=20,
                     contentid=1,
                     pos_range=((self.width // 3, 0), (self.width * 5 // 9,
                                                       self.height)))
        growth = self.growthlist[self.i]
        content_grow = ['Grow']
        for ability in self.abilities:
            content_grow.append(str(growth[ability]))
        self.display(content_grow,
                     font_size=20,
                     contentid=2,
                     pos_range=((self.width * 5 // 9, 0), (self.width * 7 // 9,
                                                           self.height)))
        content_new = ['New']
        for ability in self.abilities:
            self.origin[ability] = growth[ability] + self.origin[ability]
            content_new.append(str(self.origin[ability]))
        self.display(content_new,
                     font_size=20,
                     contentid=3,
                     pos_range=((self.width * 7 // 9, 0), (self.width,
                                                           self.height)))

        self.do(Delay(0.5) + CallFunc(self.bar_raise))
        self.i += 1
Example #28
0
    def __init__(self):
        super( TestLayer, self ).__init__()

        x,y = director.get_window_size()

        self.sprite = Sprite( 'grossini.png', (x//2, y//2) )
        self.sprite.visible = False
        self.add( self.sprite )

        def make_visible( sp ):
            sp.visible = True
        self.sprite.do( Delay(1) + CallFunc( make_visible, self.sprite ) )
Example #29
0
    def item(self, item):
        if self.selected is not None:
            for name in self.parent.children_names:
                if self.parent.children_names[name] == self:
                    self.name = name
            self.parent.remove('left')
            self.parent.remove('right')
            self.do(
                Delay(0.5) + CallFunc(
                    self.arena.exchange_item(self.selected, item, self.name)))

        else:
            self.selected = item
            left = self.parent.get('left').selected
            right = self.parent.get('right').selected
            if left is not None and right is not None:
                self.parent.remove('left')
                self.parent.remove('right')
                self.do(
                    Delay(0.5) +
                    CallFunc(self.arena.exchange_item(left, right)))
Example #30
0
    def __init__(self):

        # call superclass with the title
        super(MainMenu, self).__init__("MultiplexLayer")

        l = []
        l.append(MenuItem('Options', self.on_new_game))
        l.append(MenuItem('Quit', self.on_quit))

        self.create_menu(l)
        if autotest:
            self.do(Delay(1) + CallFunc(self.on_new_game))