def reinstate(self, x, y, target=None, coordZ=4): layer = currents['layerObject'] kind = self._kind self.absorbedDamage = 0.0 self.takenDamage = 0 self.weapons = kind.weapons self.settings = Settings() self.rays = [] self.position = rel(x, y) self.target = target self.soundList = [] self.runners = [] self.aura = None self.schedule_interval(self.regen, 1) self.do(kind.actions) self._gonnaDie = False self._auraCache = [] self.velocity = 0, 0 layer.add(self, z=coordZ) if self.good: layer.avatarHelpers.append(self) else: layer.enemies.append(self) shipsFree[kind].remove(self) shipsUsed[kind].append(self) layer.add(self, z=5)
def reinstate(self, x, y, target=None, coordZ=4): layer = currents['layerObject'] kind = self._kind self.absorbedDamage = 0.0 self.takenDamage = 0 self.weapons = kind.weapons self.settings = Settings() self.rays = [] self.position = rel(x,y) self.target = target self.soundList = [] self.runners = [] self.aura = None self.schedule_interval(self.regen, 1) self.do(kind.actions) self._gonnaDie = False self._auraCache = [] self.velocity = 0, 0 layer.add(self, z=coordZ) if self.good: layer.avatarHelpers.append(self) else: layer.enemies.append(self) shipsFree[kind].remove(self) shipsUsed[kind].append(self) layer.add(self, z=5)
def collision_layer(tilelayer, cm, alt_tilelayer=None): def collision_sprite(img, pos): sprite = cocos.sprite.Sprite(img) sprite.cshape = cocos.collision_model.AARectShape(pos, 8,8) sprite.position = pos return sprite toggle_objs = {} layer = cocos.layer.ScrollableLayer() im = pyglet.image.Texture.create(40*16, 40*16) #print type(tilelayer) for i in range(40): for j in range(40): cell = tilelayer.get_cell(i,j) if cell.tile != None: img = cell.tile.image.get_image_data() sprite = collision_sprite(img.texture, cell.center) im.blit_into(img, i*16, j*16, 0) cm.add(sprite) spr = cocos.sprite.Sprite(im) spr.position = (20*16,20*16) layer.add(spr) ''' batch = cocos.batch.BatchNode() #layer.add(batch) for col in tilelayer.cells: for cell in col: if cell.tile != None: img = cell.tile.image.get_image_data().texture sprite = collision_sprite(img, cell.center) print cell.topright #sprite.position = cell.center if cell.get('type') == 'block': pass #batch.add(sprite) elif cell.get('type') == 'toggle': sprite.norm = img # image to swap to when 'toggled' alt_coords = c['alternate'] cell = alt_tilemap.get_cell(*(ast.literal_eval(alt_coords))) sprite.alt = cell.tile.image.get_image_data().texture sprite.toggled = False batch.add(sprite) toggle_objs[sprite.position] = sprite #cm.add(sprite) ''' return layer,cm
def game_over(): w, h = director.get_window_size() layer = cocos.layer.Layer() text = cocos.text.Label('Game Over', position=(w*0.5, h*0.5), font_name='Oswald', font_size=72, anchor_x='center', anchor_y='center') layer.add(text) scene = cocos.scene.Scene(layer) new_scene = FadeTransition(mainmenu.new_menu()) #FadeTransition轉場景特效 func = lambda: director.replace(new_scene) scene.do(ac.Delay(3) + ac.CallFunc(func)) #如同在main.menu.py的self.create_menu所說,場景也可以做動作,故在3秒後才切換至新場景 return scene
def game_over(): w, h = director.get_window_size() layer = cocos.layer.Layer() text = cocos.text.Label('Game Over', position=(w*0.5, h*0.5), font_name='Oswald', font_size=72, anchor_x='center', anchor_y='center') layer.add(text) scene = cocos.scene.Scene(layer) new_scene = FadeTransition(mainmenu.new_menu()) func = lambda: director.replace(new_scene) scene.do(ac.Delay(3) + ac.CallFunc(func)) return scene
def game_over(): w, h = director.get_window_size() layer = cocos.layer.Layer() text = cocos.text.Label('Game Over', position=(w/2, h/2), font_name='Oswald', font_size=72, anchor_x='center', anchor_y='center') layer.add(text) scene = cocos.scene.Scene(layer) new_scene = FadeTransition(mainmenu.new_menu()) func = lambda: director.replace(new_scene) scene.do(ac.Delay(3)+ac.CallFunc(func)) return scene
def game_over(): # create a text label w, h = director.get_window_size() layer = cocos.layer.Layer() text = cocos.text.Label('Game Over', position=(w * 0.5, h * 0.5), font_name='Oswald', font_size=72, anchor_x='center', anchor_y='center') layer.add(text) scene = cocos.scene.Scene(layer) menu_scene = FadeTransition(mainmenu.new_menu()) show_menu = lambda: director.replace(menu_scene) scene.do(ac.Delay(3) + ac.CallFunc(show_menu)) return scene
def game_over(over=True): #print("game_over") w, h = director.get_window_size() layer = cocos.layer.Layer() if over: label_txt = "Game Over" else: label_txt = "Game Pass" text = cocos.text.Label(label_txt, position=(w * 0.5, h * 0.5), font_name='Oswald', font_size=72, anchor_x='center', anchor_y='center') layer.add(text) scene = cocos.scene.Scene(layer) new_scene = FadeTransition(mainmenu.new_menu()) func = lambda: director.replace(new_scene) scene.do(ac.Delay(3) + ac.CallFunc(func)) return scene
import cocos.director import cocos.scene import cocos.sprite import cocos.layer import cocos.actions as ac class Hit(ac.IntervalAction): def init(self, duration=0.5): self.duration = duration def update(self, t): self.target.color = (255, 255 * t, 255 * t) if __name__ == '__main__': cocos.director.director.init(caption='Actions 101') layer = cocos.layer.Layer() sprite = cocos.sprite.Sprite('tank.png', position=(200, 200)) sprite.do(ac.MoveBy((100, 0), 3) + Hit() + ac.MoveBy((50, 0), 2)) layer.add(sprite) scene = cocos.scene.Scene(layer) cocos.director.director.run(scene)
import cocos.director import cocos.scene import cocos.sprite import cocos.layer import cocos.actions as ac class Hit(ac.IntervalAction): def init(self, duration=0.5): self.duration = duration def update(self, t): self.target.color = (255, 255 * t, 255 * t) if __name__ == "__main__": cocos.director.director.init(caption="Actions 101") layer = cocos.layer.Layer() sprite = cocos.sprite.Sprite("tank.png", position=(200, 200)) sprite.do(ac.MoveBy((100, 0), 3) + Hit() + ac.MoveBy((50, 0), 2)) layer.add(sprite) scene = cocos.scene.Scene(layer) cocos.director.director.run(scene)