def status_detect(self, dt):
     if self.life > 0:
         self.cshape.center = eu.Vector2(*self.skin.position)  # 优化其放置位置
         if self.beheat:
             self.remove_all()
             self.skin.do(skeleton.Animate(self.frozen))
             block[self.num] = True
             scream = pygame.mixer.Sound(address_2 + self.sound)
             scream.set_volume(0.5)
             scream.play()
             self.beheat = False
             self.status = 5
             timer = threading.Timer(1, self.recover)
             timer.start()
         elif self.Attack:
             block[self.num] = True
             self.remove_all()
             self.skin.do(skeleton.Animate(self.attack))
             self.status = 4
             self.Attack = False
             timer = threading.Timer(1.2, self.recover)
             timer.start()
         elif self.status == 1:
             block[self.num] = False
             self.remove_all()
             self.status = 3
             self.skin.do(cocos.actions.Repeat(skeleton.Animate(self.walk)))
    def status_detect(self, dt):
        self.bullet.cshape.center = self.bullet.position
        if self.bullet_move:
            if self.count <= 4:
                self.count += 1
                x, y = self.bullet.position
                self.bullet.position = x + 40, y
            else:
                self.refresh()
        elif self.status == 1:
            if (keyboard[key.J]):
                self.status = 4
                global block_1
                block_1 = True
                self.skin.do(skeleton.Animate(self.attack))
                timer = threading.Timer(0.3, self.recover)
                timer.start()
                bullet_sound = pygame.mixer.Sound(address_2 +
                                                  '/sound/bullet.wav')
                bullet_sound.set_volume(0.5)
                bullet_sound.play()
                x, y = self.skin.position
                self.bullet.position = x + 110, y + 70
                self.bullet_move = True
            elif (keyboard[key.L]):
                self.status = 5
                block_1 = True
                self.skin.do(skeleton.Animate(self.leg_attack))
                timer = threading.Timer(0.35, self.recover)
                timer.start()
            elif (keyboard[key.K] and not self.down):
                self.status = 6
                self.skin.do(skeleton.Animate(self.jump))
                self.up = True
                timer_2 = threading.Timer(0.5, self.down_change)
                timer_2.start()
            elif ((keyboard[key.D] and not block_1_R)
                  or (keyboard[key.A])):  # key right and not attack  得改成状态保持
                self.status = 2
                self.skin.do(cocos.actions.Repeat(skeleton.Animate(self.walk)))
        if (self.status == 2 and not (keyboard[key.D] or keyboard[key.A])):
            self.recover()
        if self.beheat and self.status != 3:
            self.remove_all()
            self.status = 3
            self.beheat = False
            block_1 = True
            self.skin.do(skeleton.Animate(self.frozen))
            timer = threading.Timer(0.5, self.recover)
            timer.start()

        if self.life <= 0:
            del self  #这里确定没有问题??
            scene_2 = cocos.scene.Scene(VF_Layer(True), Game_menu(), Drag(),
                                        MouseDisplay())
            director.replace(
                scenes.transitions.SlideInBTransition(scene_2, duration=1))
 def status_detect(self, dt):
     self.cshape.center = eu.Vector2(*self.skin.position)  # 优化其放置位置
     if self.block:
         if self.count <= 5:
             self.count += 1
             self.near_attack = True
         else:
             global block_2
             self.refresh()
     else:
         if (keyboard[key.NUM_1]):
             if self.status != 4:
                 self.remove_all()
                 self.status = 4
                 self.change = True
             else:
                 self.change = False
                 self.block = True
                 block_2 = self.block
         elif (keyboard[key.RIGHT]):  # key right and not attack
             if self.status != 2 and self.status != 1:
                 self.remove_all()
                 self.status = 2
                 self.change = True
             else:
                 self.change = False
         elif (keyboard[key.LEFT]):  # key right and not attack
             if self.status != 1:
                 self.remove_all()
                 self.status = 1
                 self.change = True
             else:
                 self.change = False
         else:
             self.remove_all()
             if self.status != 3:
                 self.status = 3
                 self.change = True
             else:
                 self.change = False
     if self.change:
         if self.status == 1:
             self.skin.do(cocos.actions.Repeat(skeleton.Animate(self.walk)))
         else:
             if self.status == 2:
                 self.skin.do(
                     cocos.actions.Repeat(skeleton.Animate(self.walk)))
             elif self.status == 4:
                 self.skin.do(
                     cocos.actions.Repeat(skeleton.Animate(
                         self.attack)))  # there is a bug:return attack
                 self.block = True
                 block_2 = self.block
         self.change = False
Beispiel #4
0
 def addAnim(self, x, y, delay, name):
     skin, anim = self.getAnim(name)
     self.add(skin)
     skin.position = x, y
     skin.do(cocos.actions.Repeat(skeleton.Animate(anim)))
     finalTime = time.time() + delay
     skin.schedule_interval(lambda x: self.killFunc(skin, finalTime), 0.1)
Beispiel #5
0
 def addThrow(self, task):
     delay = task['duration']
     skin, anim = self.getAnim('me_throw')
     self.add(skin)
     x, y = self.getMidXY()
     skin.position = x, y
     skin.do(skeleton.Animate(anim) +
             CallFunc(partial(self.addThrow2, skin, delay)))
Beispiel #6
0
 def __init__(self):
     super(TestLayer, self).__init__()
     skin, anim = getAnim('handInHand')
     x, y = director.get_window_size()
     self.skin = skin
     self.add(self.skin)
     x, y = director.get_window_size()
     self.skin.position = x / 2, y / 2
     self.skin.do(cocos.actions.Repeat(skeleton.Animate(anim)))
Beispiel #7
0
 def addCatch2(self, task):
     delay = task['duration']
     skin, anim = self.getAnim('baobao_catch_after')
     self.add(skin)
     x, y = self.getMidXY()
     skin.position = x, y
     skin.do(Repeat(skeleton.Animate(anim)))
     finalTime = time.time() + delay
     skin.schedule_interval(lambda x: self.killFunc(skin, finalTime), 0.1)
Beispiel #8
0
 def addCatch(self, task):
     delay = task['duration']
     skin, anim = self.getAnim('baobao_catch')
     self.add(skin)
     x, y = self.getMidXY()
     skin.position = x, y
     skin.do(Repeat(skeleton.Animate(anim)))
     finalTime = time.time() + delay
     skin.schedule_interval(lambda x: self.killFunc(skin, finalTime), 0.1)
     self.addSprite(0, y + 80, (x - 100, 0), delay, 0.5, 'flower.png', 90)
Beispiel #9
0
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()
        self.skin = skeleton.BitmapSkin(human_bone.skeleton, human_skin.skin)
        self.add(self.skin)
        x, y = director.get_window_size()
        self.skin.position = x / 2, y / 2
        anim = pickle.load(open("sample.anim", 'rb'))
        self.skin.do(cocos.actions.Repeat(skeleton.Animate(anim)))
    def __init__(self):
        super(TestLayer, self).__init__()

        x, y = director.get_window_size()
        self.skin = skeleton.BitmapSkin(sample_skeleton.skeleton,
                                        sample_skin.skin)
        self.add(self.skin)
        x, y = director.get_window_size()
        self.skin.position = x // 2, y // 2
        anim = pickle.load(open("SAMPLE.anim", "rb"))
        self.skin.do(cocos.actions.Repeat(skeleton.Animate(anim)))
Beispiel #11
0
 def addThrow2(self, lastskin, delay):
     delay = delay - 1
     lastskin.kill()
     skin, anim = self.getAnim('me_throw_after')
     self.add(skin)
     x, y = self.getMidXY()
     skin.position = x, y
     skin.do(Repeat(skeleton.Animate(anim)))
     finalTime = time.time() + delay
     skin.schedule_interval(lambda x: self.killFunc(skin, finalTime), 0.1)
     self.addSprite(x + 150, y + 130, (x, 0), delay, 0.5, 'flower.png', 90)
    def __init__(self):
        super(Mr_cai, self).__init__()

        x, y = director.get_window_size()
        self.skin = skeleton.BitmapSkin(animation.model1_skeleton.skeleton,
                                        animation.model1_skin.skin)
        self.add(self.skin)
        x, y = director.get_window_size()
        self.skin.position = 300, 150
        fp0 = open((address_2 + "/animation/Mr_cai.anim"), "rb+")
        anim = cPickle.load(fp0)
        self.skin.do(cocos.actions.Repeat(skeleton.Animate(anim)))
Beispiel #13
0
    def __init__(self):
        super(Moving_man, self).__init__()

        x, y = director.get_window_size()
        self.skin = skeleton.BitmapSkin(my_sample_skeleton.skeleton,
                                        my_sample_skin.skin)
        self.add(self.skin)
        x, y = director.get_window_size()
        self.skin.position = x / 2, y / 2
        fp = open(r"D:/MyCode/MyPython/BUPT_TowerDefence/my_SAMPLE.anim",
                  "rb+")
        # fp = open(r"D:/CSHE/BUPT_TowerDefence/my_SAMPLE.anim","rb+")
        anim = cPickle.load(fp)
        self.skin.do(cocos.actions.Repeat(skeleton.Animate(anim)))
Beispiel #14
0
    def __init__(self):
        super(TestLayer, self ).__init__()

        x,y = director.get_window_size()
        
        skel = Figure(-100)

        # create a ColorSkin for our skeleton
        self.skin = skeleton.ColorSkin(skel, (255,255,255,255))
        
        # add the skin to the scene
        self.add( self.skin )
        x, y = director.get_window_size()
        self.skin.position = x/2, y/2

        anim = pickle.load(open('dance.anim', 'rb'))
        self.skin.do(cocos.actions.Repeat(skeleton.Animate(anim)))