# Problem : the image files are not found if the module is executed from another working directory # Solution : search in pyglet.resources import pyglet import os from cocos.director import director from cocos.scene import Scene from flappybird.flappybird import Flappy # script_dir = os.path.dirname(__file__) # print('script dir =', script_dir) # path = os.path.join(script_dir, '/images/background.png') # print('path =', path) pyglet.resource.path = ['flappybird/images'] pyglet.resource.reindex() director.init(resizable=True, caption='Flappy Bird') scene = Scene(Flappy()) director.run(scene)
def open_menu(self): director.replace(Scene(PopUpMenu()))
def open_menu(self): director.replace(Scene(Beach_scene(), Jungle_scene(), Treetop_scene())) director.replace(Scene(PopUpMenu()))
def on_key_press(self, key, modifiers): if symbol_string(key) == "Z": self.sprite.do(Hide()) #time.sleep(1.5) director.replace(win()) class obj_3(Layer): is_event_handler = True def __init__(self): super(obj_3, self).__init__() sprite = cocos.sprite.Sprite('flaregun.png') self.sprite = Sprite('flaregun.png') self.sprite.scale = .5 self.sprite.position = 900, 100 self.add(self.sprite) def on_key_press(self, key, modifiers): if symbol_string(key) == "Z": self.sprite.do(Hide()) director.replace(start1()) # Then we initialize the mixer (I bet you forgot about this!) mixer.init() # And initialize the director like usual director.init(width=1280, height=720, resizable=True) director.window.push_handlers(keyboard) director.run(Scene(StartMenu())) #Run Scene
def on_key_press(self, key, modifiers): if symbol_string(key) == "LEFT": director.replace( Scene(Jungle_scene(), Player_right(), InGameMenu()))
def onBack(self): director.replace(Scene(self.gScene)) self.gScene.PLAYER.is_playing = False
def draw(self): # blit the image on every frame self.image.blit(0, 0) if __name__ == "__main__": # initialize the director, # enabling to resize the main window director.init(resizable=True) # enable opengl depth test # since we are using z-values director.set_depth_test() # create an Scene with 1 layer: BackgroundLayer scene = Scene(BackgroundLayer()) # create a Lens effect action # radius: 150 pixels # lens_effect: 0.7, a strong "lens". 0 means no effect at all. 1 means very strong # center: center of the lens # grid=(20,16): create a grid of 20 tiles x 16 tiles. More tiles will # look better but the performance will decraese # duration=10: 10 seconds lens = Lens3D(radius=150, lens_effect=0.7, center=(150, 150), grid=(20, 16), duration=50) # create a Jump action
def startroutine(): director.init() mixer.init() print("director started") director.run(Scene(MainMenuLayer(director, None)))
label.position = W / 2, H-5 self.add(label) class TetrisBG(Sprite): def __init__(self): Sprite.__init__(self,'img/tetris/bg.png',scale=.4) self.image_anchor_y = 0 self.position = W/2,0 class Ani(Layer): def __init__(self): Layer.__init__(self) sheet = pyglet.image.load('img/tetris/walk.png') grid = pyglet.image.ImageGrid(sheet,2,8)[0:] grid = grid[8:] # reorder anim = pyglet.image.Animation.from_image_sequence(grid, .1, loop=True) spr = Sprite(anim) ; spr.position = W/2,H/2 self.add(spr) director.init(caption=str(sys.argv)) W, H = director.get_window_size() intro_l = IntroLayer() intro_s = Scene() intro_s.add(TetrisBG(),0) intro_s.add(intro_l) intro_s.add(Ani(),9) director.run(intro_s)
def show_save_load(self): """as the name says """ director.replace(FlipY3DTransition(Scene(my_save_load_layer))) my_save_load_layer.show_save_slot()
def menu(): return Scene(TitleLayer(), MultiplexLayer(MainMenu(), OptionMenu(), LoadMenu()))
def show_menu(self): """as the name says """ self.game_status = 'END' director.replace(FlipY3DTransition(Scene(my_menu)))
def show_game(self): """method to return to the game screen """ director.replace(Scene(game_screen, front_layer)) self.player.show_player()
# display the stage numbers of the zones where the player can access materials.front_layer.show_map_selector(self.max_stage, no) if __name__ == '__main__': msg = [] # change the working dir to the exe temp dir # when you use pyinstaller to make a one-file exe package, you need this: #if getattr(sys, 'frozen', False): # os.chdir(sys._MEIPASS) my_game = Game(player.Player()) game_screen = ScrollingManager() # the tile map 'map.tmx' which has a layer called 'start' # use the editor software called 'Tiled' to make a tile map front_layer = materials.front_layer.Front_Layer() map_layer = cocos.tiles.load('./materials/background/map.tmx')['start'] my_info = materials.info_layer.Info_Layer(my_game) my_save_load_layer = materials.save_load_layer.Save_Load_Layer(my_game) my_menu = materials.menu.Menu_Screen(my_game) my_main = materials.main_scr.Main_Screen(my_game) # the order of the 'add' makes sense! game_screen.add(map_layer) game_screen.add(my_main) #game_screen.add(front_layer) main_scene = Scene(my_menu) #print ('game initialised') director.run(main_scene) #print('game end')
def create_scene(layer): return Scene(Background(), layer)
def test_manually(self): director.run(scene=Scene(self.button))
self.index = len(tests) elif keys == key.RIGHT: self.index += 1 if self.index > len(tests): self.index = 1 if keys in (key.LEFT, key.RIGHT, key.ENTER): director.replace(get_sprite_test(self.index)) return True # def on_exit( self ): # for o in self.objects: # o.stop() class SpriteMoveTo(SpriteLayer): def on_enter(self): super(SpriteMoveTo, self).on_enter() sprite3 = Sprite(self.image) self.add(sprite3) sprite3.position = 320, 300 sprite3.do(MoveTo((620, 300), 4)) if __name__ == "__main__": director.init(resizable=True, caption='Cocos - Sprite demo') # director.window.set_fullscreen(True) director.run(Scene(SpriteMoveTo(1)))
def get_sprite_test(index): d = tests[index] return Scene(FontLayer(title=d[0], subtitle=d[1]), d[2](index))
import sys import os from cocos.director import director from cocos.scene import Scene from cocos import tiles if __name__ == '__main__': director.init(caption='Tank Battle', width=448, height=336) maps = tiles.load('maps.xml') print maps['map0'] scroller = tiles.ScrollingManager() scroller.add(maps['map0']) director.run(Scene(scroller))
self.font_item_selected['font_size'] = 50 self.font_item_selected['color'] = (255, 255, 255, 255) self.menu_valign = BOTTOM items = [] items.append(MenuItem('Start', self.on_start)) items.append(MenuItem('Quit', self.on_quit)) self.create_menu(items) def on_start(self): game_scene = game.Game() game_scene.add(Score(), z=2) director.push(game_scene) def on_quit(self): pyglet.app.exit() if __name__ == "__main__": font_path = os.path.join(os.path.dirname(__file__), 'media/font') font.add_directory(font_path) director.init(resizable=False, width=800, height=600) scene = Scene(Background()) scene.add(MainMenu()) director.run(scene)
# Then we add it self.add(self.sprite) # And lastly we make it do that CarDriver action we made earlier in this file (yes it was an action not a layer) self.sprite.do(CarDriver()) # Now to the code that actually runs this game! # Here I make a layer out of that CarLayer we defined before car_layer = CarLayer() # Next I load the map of the racetrack just as I did in the last tutorial map_layer = load("assets/road_map.tmx")["map0"] # Then we add them to the ScrollingManager scroller.add(map_layer) scroller.add(car_layer) # Order is important! If we added the car layer first, the map would go on top and you wouldn't see the car # Then we make a scene out of the scroller (just like we did before) scene = Scene(scroller) # This line is a bit random here but... # I also need to push the handlers from the window to the object from Pyglet # If I don't, it won't be able to handle the Cocos2D keyboard input! director.window.push_handlers(keyboard) # And finally we run the scene director.run(scene)
- Z/U : zoom - N : normal - D : Display debug info """ def __init__(self): super(MyRoad, self).__init__(cocos.tiles.load('maps/road-map.xml')['map0']) self.add(ScrollablePlayer('img/cars/taxi.png')) if __name__ == '__main__': director.init(800, 600, resizable=True) keyboard = key.KeyStateHandler() director.window.push_handlers(keyboard) # create the scene switch layer switch_layer = SwitchScene() # place all scenes in a scene list scenes = [ Scene(Title('Platformer demo'), switch_layer), Scene(MyWitch(), switch_layer), Scene(MyRoad(), switch_layer), Scene(Player('img/rocket.png'), switch_layer), Scene(MyMap(cocos.tiles.load('maps/world.tmx')['tiles']), switch_layer), Scene(ScrollablePlayer('img/rocket.png'), switch_layer), Scene(ScrollablePlayer('img/cars/truck.png'), switch_layer), ] # give the scene list to the switch layer switch_layer.scenes = scenes director.run(scenes[0])
def on_key_press(self, key, modifiers): if symbol_string(key) == "LEFT": director.replace(Scene(Beach_scene(), InGameMenu())) if symbol_string(key) == "RIGHT": director.replace(Scene(Treetop_scene(), InGameMenu()))
def main(): font.add_directory('.') director.init(resizable=True) director.run(Scene(MainMenu()))
def start_game(self): director.replace(FadeTransition(Scene(Beach_scene(), InGameMenu())))
def main(): # initialize the director director.init(800, 600, resizable=True) # create the scene switch layer switch_layer = SwitchScene() # define the scene switch layer red = ColorLayer(255, 0, 0, 255) green = ColorLayer(0, 255, 0, 255) blue = ColorLayer(0, 0, 255, 255) # place all scenes in a scene list scenes = [ Scene(Title('Cocos2D tutorial'), switch_layer), Scene(Animals(), switch_layer), Scene(SwitchLayer(red, green, blue), switch_layer), Scene(PythonInterpreterLayer(), switch_layer), Scene(Mouse(), switch_layer), Scene(ColorLayer(150, 0, 0, 255), switch_layer), Scene(OptionsMenu(), switch_layer), Scene(ColorLayer(0, 150, 0, 255), switch_layer), Scene(ActionMenu(actions), switch_layer), Scene(EffectMenu(effects), switch_layer), Scene(TransitionMenu(transitions), switch_layer) ] # give the scene list to the switch layer switch_layer.scenes = scenes # run the first scene cocos.director.director.run(scenes[0])
def start_menu(self): director.replace(Scene(StartMenu()))
def on_options(self): self.parent.switch_to(1) def on_scores(self): self.parent.switch_to(2) def on_quit(self): pyglet.app.exit() if __name__ == "__main__": pyglet.resource.path.append('res') pyglet.resource.reindex() font.add_directory('res') director.init(resizable=True, width=960, height=540, autoscale=True, fullscreen=False) scene = Scene() scene.add( MultiplexLayer(MainMenu()) # OptionsMenu(), # ScoresLayer(), # ), , z=1) scene.add(BackgroundLayer(), z=0) director.run(scene)
def on_key_press(self, key, modifiers): if symbol_string(key) == "ENTER": director.replace(FadeTransition(Scene(VolumeMenu())))
class Main(Menu): def __init__(self, map): super().__init__() self.map = map l = [] l.append(MenuItem('New_game', self.new_game)) l.append(MenuItem('Load_game', self.load_game)) l.append(MenuItem('Quit', self.quit)) self.create_menu(l, zoom_in(), zoom_out()) def new_game(self): new_game(self.map) def load_game(self): map = self.map.map_load()[0] load_game(map) def quit(self): director.pop() if __name__ == '__main__': pyglet.resource.path = ['./img'] pyglet.resource.reindex() director.init(caption='3X-Project', width=1280, height=720) director.run(Scene(Main(map_init())))