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
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)
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)))
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)))
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)
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)
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)))
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)))
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)))
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)))