Ejemplo n.º 1
0
    def __init__(self):

        super(World, self).__init__()
        self.player = Car(self)
        self.newMap(30, 20)
        self.map = tiles.load('tilemap.xml')['map0']
        self.checkSpawnPoint()
        self.exitPoint = self.checkExitPoint()
        self.blockKeys = 0.0
        self.blockKeysFull = 0.3
        self.bindings = {
            key.LEFT: 'left',
            key.RIGHT: 'right',
            key.UP: 'up',
            key.DOWN: 'down',
            key.E: 'down_level',
            key.Z: 'scale',
                        }
        buttons = {}
        for k in self.bindings:
            buttons[self.bindings[k]] = 0
        self.buttons = buttons

        self.overlaidCells = []
        #self.overlay = layer.util_layers.ColorLayer(0, 0, 0, 128, 20*128, 30*128)

        #self.map.add(self.overlay)
        self.carLayer = layer.ScrollableLayer()
        self.carLayer.add(self.player)
        self.manager = layer.ScrollingManager()
        self.manager.add(self.map)
        self.manager.add(self.carLayer)
        self.add(self.manager)

        self.schedule(self.update)
Ejemplo n.º 2
0
def get_scene():
    global keyboard, scroller
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    model = Model()

    world_layer = WorldMap(2000, 2000, model)
    scroller = cocos.layer.ScrollingManager()
    scroller.add(world_layer)

    car_layer = layer.ScrollableLayer()
    car = cocos.sprite.Sprite('car.png')
    car_layer.add(car)
    car.position = (200, 100)
    # car.max_forward_speed = 200
    # car.max_reverse_speed = -100
    car.max_forward_speed = 400
    car.max_reverse_speed = -200
    car.do(DriveCar(model))
    scroller.add(car_layer)

    scene = Scene()
    scene.add(scroller)

    return scene
Ejemplo n.º 3
0
def main():
    from cocos.director import director
    director.init(width=1200, height=600, autoscale=False, resizable=True)

    card_layer = layer.ScrollableLayer()
    cards = set()
    for i in range(9):
        card = cocos.sprite.Sprite('Resources/Box_Orange.png')
        card.scale = 1 / 3
        card.position = (-100, -100)
        cards.add(card)
        card_layer.add(card)

    ox = 0
    oy = 0
    t = 1
    for c in cards:
        c.do(
            Delay(t) + Accelerate(
                MoveTo((200 + ox, 200 + oy), duration=1)
                | RotateBy(720, 1), 3))
        if t in (3, 6):
            ox = 0
            oy += card.height
        else:
            ox += card.width
        t += 1

    main_scene = cocos.scene.Scene(card_layer)
    director.run(main_scene)
Ejemplo n.º 4
0
    def __init__(self, *args, **kwargs):
        super(MyWitch, self).__init__(*args, **kwargs)

        self.fullmap = cocos.tiles.load('maps/platformer-map.xml')
        # add the walls (labyrinth)
        self.walls = self.fullmap['walls']
        self.add(self.walls, z=0)

        # add the items (bushes cauldron)
        self.decoration = self.fullmap['decoration']
        self.add(self.decoration, z=1)

        # add the player
        player_layer = layer.ScrollableLayer()
        self.player = cocos.sprite.Sprite('img/witch-standing.png')
        self.player.do(MyWitchController())
        player_layer.add(self.player)
        self.add(player_layer, z=2)

        # set the player start position using the player_start token from the map
        start = self.decoration.find_cells(player_start=True)[0]
        r = self.player.get_rect()
        r.midbottom = start.midbottom
        self.player.position = r.center

        # give a collision handler to the player
        mapcollider = cocos.mapcolliders.RectMapCollider(
            velocity_on_bump='slide')
        self.player.collision_handler = mapcolliders.make_collision_handler(
            mapcollider, self.walls)
Ejemplo n.º 5
0
def main():
    global keyboard, scroller
    from cocos.director import director
    director.init(width=800, height=600, autoscale=False, resizable=True)

    car_layer = layer.ScrollableLayer()
    car = cocos.sprite.Sprite('car.png')
    car_layer.add(car)
    car.position = (200, 100)
    car.max_forward_speed = 200
    car.max_reverse_speed = -100
    car.do(DriveCar())

    scroller = layer.ScrollingManager()
    test_layer = tiles.load('road-map.tmx')['map0']
    scroller.add(test_layer)
    scroller.add(car_layer)

    main_scene = cocos.scene.Scene(scroller)

    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    def on_key_press(key, modifier):
        if key == pyglet.window.key.Z:
            if scroller.scale == .75:
                scroller.do(actions.ScaleTo(1, 2))
            else:
                scroller.do(actions.ScaleTo(.75, 2))
        elif key == pyglet.window.key.D:
            test_layer.set_debug(True)

    director.window.push_handlers(on_key_press)

    director.run(main_scene)
def main():
	global keyboard
	global scroller # This variable is going to become a scrolling manager to enable us to scroll along the map
	
	# Initialize director
	director.init(width=800, height=600, caption="In the beginning everything was Kay-O", autoscale=True, resizable=True)
	
	# Create player layer and add player onto it
	# This time make it a ScrollableLayer type rather than simply Layer
	player_layer = layer.ScrollableLayer()
	player = sprite.Sprite('images/mr-saturn.png')
	player_layer.add(player)

	# Sets initial position and velocity of player
	player.position = (750, 1200)
	player.velocity = (0, 0)

	# Set the sprite's movement class
	player.do(Player())
	
	# Create a new ScrollingManager object so we can scroll the view along with the player
	# The ScrollingManager object lets us separate "world" coordinates and "screen" coordinates
	# In this way, we can keep track of where the player is across the entire map but keep the viewport local
	#(http://python.cocos2d.org/doc/api/cocos.layer.scrolling.html#cocos.layer.scrolling.ScrollingManager)
	scroller = layer.ScrollingManager()
	
	# Now we will create a map layer based on our TMX file
	# I called the ground layer "Ground" in the tmx file, which is what we specify here as an identifier
	# This is located in the <layer> tags in map.tmx
	# We do the same thing for TopLayer
	# See README in this folder for more information
	ground_layer = tiles.load('tiles/map.tmx')['Ground']
	top_layer = tiles.load('tiles/map.tmx')['TopLayer']
	
	# Creates a text layer and adds an instance of BigText() to it
	text_layer = BigText()
	
	# Add player sprite and player_layer to the ScrollingManager
	# We have also added a second argument to the add() calls
	# This is the z-index, which explicity determines the order of layers.
	# Here, the player has a z-index of 1 and the text has an index of 2 so it will overlay the player.
	# And 0 will be the background
	scroller.add(ground_layer, z = 0)
	scroller.add(top_layer, z = 1)
	scroller.add(player_layer, z = 1) 
	
	# Here we initialize the scene with initial layer "scroller" which holds all of the layers
	main_scene = scene.Scene(scroller)
	# Here we add the text_layer containing the instance of BigText() to the main scene
	main_scene.add(text_layer, z = 2)

	keyboard = key.KeyStateHandler()
	director.window.push_handlers(keyboard)
	
	# Run the scene we've built in the window
	director.run(main_scene)
Ejemplo n.º 7
0
def main():
    global keyboard, tilemap, scroller
    from cocos.director import director
    director.init(width=800, height=600, autoscale=False)

    print(description)
    # create a layer to put the player in
    player_layer = layer.ScrollableLayer()
    # NOTE: the anchor for this sprite is in the CENTER (the cocos default)
    # which means all positioning must be done using the center of its rect
    player = cocos.sprite.Sprite('witch-standing.png')
    player_layer.add(player)
    player.do(PlatformerController())

    # add the tilemaps and the player sprite layer to a scrolling manager
    scroller = layer.ScrollingManager()
    fullmap = tiles.load('platformer-map.xml')
    tilemap_walls = fullmap['walls']
    scroller.add(tilemap_walls, z=0)
    tilemap_decoration = fullmap['decoration']
    scroller.add(tilemap_decoration, z=1)
    scroller.add(player_layer, z=2)

    # set the player start using the player_start token from the map
    start = tilemap_decoration.find_cells(player_start=True)[0]
    r = player.get_rect()

    # align the mid bottom of the player with the mid bottom of the start cell
    r.midbottom = start.midbottom

    # player image anchor (position) is in the center of the sprite
    player.position = r.center

    # give a collision handler to the player
    mapcollider = mapcolliders.RectMapCollider(velocity_on_bump='slide')
    player.collision_handler = mapcolliders.make_collision_handler(
        mapcollider, tilemap_walls)

    # construct the scene with a background layer color and the scrolling layers
    platformer_scene = cocos.scene.Scene()
    platformer_scene.add(layer.ColorLayer(100, 120, 150, 255), z=0)
    platformer_scene.add(scroller, z=1)

    # track keyboard presses
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    # allow display info about cells / tiles
    def on_key_press(key, modifier):
        if key == pyglet.window.key.D:
            tilemap_walls.set_debug(True)

    director.window.push_handlers(on_key_press)

    # run the scene
    director.run(platformer_scene)
Ejemplo n.º 8
0
def main():
    global keyboard, walls, scroller
    from cocos.director import director
    director.init(width=800, height=600, autoscale=False)

    print(description)
    # create the scrolling manager that will hold all game entities
    scroller = layer.ScrollingManager()

    # load the map layer of interest and add to the level
    walls = tiles.load('tmx_collision.tmx')['walls']
    assert isinstance(walls, tiles.TmxObjectLayer)
    scroller.add(walls, z=0)

    # create a layer to put the player in; it will care for player scroll
    player_layer = layer.ScrollableLayer()

    # NOTE: the anchor for this sprite is in the CENTER (the cocos default)
    # which means all positioning must be done using the center of its rect
    player = cocos.sprite.Sprite('witch-standing.png')
    player_layer.add(player)
    player.do(PlatformerController2())
    scroller.add(player_layer, z=1)

    # set the player start using the object with the 'player_start' property
    player_start = walls.find_cells(player_start=True)[0]

    # for convenience the player start was give the same dimensions as player,
    # so put player.center over player start center
    player.position = player_start.center

    # set focus so the player is in view
    scroller.set_focus(*player.position)

    # extract the player_start, which is not a wall
    walls.objects.remove(player_start)

    # give a collision handler to the player
    mapcollider = mapcolliders.TmxObjectMapCollider()
    mapcollider.on_bump_handler = mapcollider.on_bump_slide
    player.collision_handler = mapcolliders.make_collision_handler(
        mapcollider, walls)

    # construct the scene with a background layer color and the scrolling layers
    platformer_scene = cocos.scene.Scene()
    platformer_scene.add(layer.ColorLayer(100, 120, 150, 255), z=0)
    platformer_scene.add(scroller, z=1)

    # track keyboard presses
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    # run the scene
    director.run(platformer_scene)
Ejemplo n.º 9
0
 def newLevel(self):
     # TODO Make this better
     self.killChildren()
     self.manager = layer.ScrollingManager()
     self.newMap(30, 30)
     self.map = tiles.load('tilemap.xml')['map0']
     self.checkSpawnPoint()
     self.carLayer = layer.ScrollableLayer()
     self.carLayer.add(self.player)
     self.manager = layer.ScrollingManager()
     self.manager.add(self.map)
     self.manager.add(self.carLayer)
     self.add(self.manager)
def main():
    global keyboard, walls, scroller
    from cocos.director import director
    director.init(width=800, height=600, autoscale=False)

    print(description)

    # add the tilemap and the player sprite layer to a scrolling manager
    scroller = layer.ScrollingManager()
    walls = tiles.load('tmx_collision.tmx')['walls']
    assert isinstance(walls, tiles.TmxObjectLayer)
    scroller.add(walls, z=0)

    # make the function to handle collision between actors and walls
    mapcollider = TmxObjectMapCollider()
    mapcollider.on_bump_handler = mapcollider.on_bump_bounce
    fn_collision_handler = mapcolliders.make_collision_handler(
        mapcollider, walls)

    # make the function to set visual focus at position
    fn_set_focus = scroller.set_focus

    # create a layer to put the player in
    actors_layer = layer.ScrollableLayer()
    ball = Ball((300, 300), (600, 600), fn_collision_handler, fn_set_focus,
                (255, 0, 255))
    actors_layer.add(ball)

    scroller.add(actors_layer, z=1)

    # set the player start using the object with the 'player_start' property
    player_start = walls.find_cells(player_start=True)[0]
    ball.position = player_start.center

    # set focus so the player is in view
    scroller.set_focus(*ball.position)

    # extract the player_start, which is not a wall
    walls.objects.remove(player_start)

    # construct the scene with a background layer color and the scrolling layers
    platformer_scene = cocos.scene.Scene()
    platformer_scene.add(layer.ColorLayer(100, 120, 150, 255), z=0)
    platformer_scene.add(scroller, z=1)

    # track keyboard presses
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    # run the scene
    director.run(platformer_scene)
Ejemplo n.º 11
0
def main():
    global keyboard, walls, scroller
    from cocos.director import director
    director.init(width=800, height=600, autoscale=False)

    print(description)

    car_layer = layer.ScrollableLayer()
    car = cocos.sprite.Sprite('car.png')
    car_layer.add(car)
    car.position = (200, 100)
    car.max_forward_speed = 200
    car.max_reverse_speed = -100
    worker_action = car.do(DriveCar())

    # add the map and the player sprite layer to a scrolling manager
    scroller = layer.ScrollingManager()
    walls = tiles.load('tmx_collision.tmx')['walls']
    assert isinstance(walls, tiles.TmxObjectLayer)
    worker_action.walls = walls
    scroller.add(walls, z=0)
    scroller.add(car_layer, z=1)

    player_start = walls.find_cells(player_start=True)[0]

    # extract the player_start, which is not a wall
    walls.objects.remove(player_start)

    # give car access to the walls so it can change colors
    car.walls = walls

    # construct the scene with a background layer color and the scrolling layers
    platformer_scene = cocos.scene.Scene()
    platformer_scene.add(layer.ColorLayer(100, 120, 150, 255), z=0)
    platformer_scene.add(scroller, z=1)

    # track keyboard presses
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    # run the scene
    director.run(platformer_scene)
Ejemplo n.º 12
0
def main():
    global keyboard, tilemap, scroller
    from cocos.director import director
    director.init(width=800, height=600, do_not_scale=True)

    print description
    # create a layer to put the player in
    player_layer = layer.ScrollableLayer()
    # NOTE: the anchor for this sprite is in the CENTER (the cocos default)
    # which means all positioning must be done using the center of its rect
    player = cocos.sprite.Sprite('witch-standing.png')
    player_layer.add(player)
    player.do(PlatformerController())

    # add the tilemap and the player sprite layer to a scrolling manager
    scroller = layer.ScrollingManager()
    tilemap = tiles.load('platformer-map.xml')['level0']
    scroller.add(tilemap, z=0)
    scroller.add(player_layer, z=1)

    # set the player start using the player_start token from the tilemap
    start = tilemap.find_cells(player_start=True)[0]
    r = player.get_rect()

    # align the mid bottom of the player with the mid bottom of the start cell
    r.midbottom = start.midbottom

    # player image anchor (position) is in the center of the sprite
    player.position = r.center

    # construct the scene with a background layer color and the scrolling layers
    platformer_scene = cocos.scene.Scene()
    platformer_scene.add(layer.ColorLayer(100, 120, 150, 255), z=0)
    platformer_scene.add(scroller, z=1)

    # track keyboard presses
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    # run the scene
    director.run(platformer_scene)
Ejemplo n.º 13
0
def main():

    # Declare these as global so they can be accessed within class methods.
    global keyboard
    global scroller

    # Initialize the window.
    director.init(width=800, height=600, do_not_scale=True, resizable=True)

    # Create a layer and add a sprite to it.
    player_layer = layer.ScrollableLayer()
    me = sprite.Sprite('human-female.png')
    player_layer.add(me)

    # Set initial position and velocity.
    me.position = (100, 100)
    me.velocity = (0, 0)

    # Set the sprite's movement class.
    me.do(Me())

    # Create scroller object and load tiles.
    scroller = layer.ScrollingManager()
    map_layer = tiles.load('tiles/map.xml')['map0']

    # Add map and player layers.
    scroller.add(map_layer)
    scroller.add(player_layer)

    # Create a scene and set its initial layer.
    main_scene = scene.Scene(scroller)

    # Attach a KeyStateHandler to the keyboard object.
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    # Play the scene in the window.
    director.run(main_scene)
Ejemplo n.º 14
0
def main():
    global keyboard, tilemap, scroller, player_direction, player_right, player_left, my_start_x, ground_list, start_point
    from cocos.director import director
    director.init(width=BG_WD, height=BG_HT, autoscale=False)

    print(description)
    # create a layer to put the player in
    player_layer = layer.ScrollableLayer(1)
    # NOTE: the anchor for this sprite is in the CENTER (the cocos default)
    # which means all positioning must be done using the center of its rect
    player = cocos.sprite.Sprite('block_man.png')
    player.x = -2850
    player.y = 120

    dragon_keep_bg = cocos.sprite.Sprite('DragonKeepPNG.png')

    player_layer.add(dragon_keep_bg, z=1)
    player_layer.add(player, z=2)

    #test tmx object collision - no really good examples
    #points = [(3232, 2400), (4232, 2400), (4232, 2300), (3232, 2300)]
    #t = cocos.tiles.TmxObject('polygon', 'dragon', 3232, 2400, 1000, 10, None, None, None, 1, points)
    #lay = cocos.tiles.TmxObjectLayer('layer', (255, 0, 0, 255), [t], 1, 1, (3232, 2400))
    #i = 0
    #pdb.set_trace()
    #while (i < 10):
    #    player.x += 10
    #    player.y -= 10
    #    rect = player.get_rect()
    #    if (lay.collide(rect, 'layer')):
    #        print("True!")
    #    i+=1

    #tbd
    player.do(PlatformerController())

    scroller = layer.ScrollingManager()
    scroller.add(player_layer, z=2)

    # construct the scene with a background layer color and the scrolling layers
    platformer_scene = cocos.scene.Scene()
    platformer_scene.add(layer.ColorLayer(0, 0, 0, 255), z=0)
    platformer_scene.add(scroller, z=1)

    # track keyboard presses
    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)
    my_start_x = 0
    ground_list = []
    start_point = []

    # allow display info about cells / tiles
    def on_key_press(key, modifier):
        #pdb.set_trace()
        global player_direction
        if key == pyglet.window.key.LEFT:
            player.x -= 100
        if key == pyglet.window.key.RIGHT:
            player.x += 100
        if key == pyglet.window.key.UP:
            player.y += 100
        if key == pyglet.window.key.DOWN:
            player.y -= 100
        if key == pyglet.window.key.E:
            print(ground_list)

        scroller.set_focus(player.position[0], player.position[1])
        print(player.position)
        print("x{}, y{}".format(player.x, player.y))

    def on_mouse_release(x, y, buttons, modifiers):
        global my_start_x, start_point, ground_list
        t = scroller.screen_to_world(x, y)
        print("mouse x{}, y{}".format(x, y))
        print("mouse x{}, y{}".format(t[0], t[1]))
        if (my_start_x == 0):
            print("start_x = 0")
            my_start_x = 1
            start_point = t
        else:
            print("start_x = 1")
            my_start_x = 0
            ground_list.append([start_point, t])

    director.window.push_handlers(on_key_press)
    director.window.push_handlers(on_mouse_release)

    scroller.set_focus(player.position[0], player.position[1])

    # run the scene
    director.run(platformer_scene)
Ejemplo n.º 15
0
    def loadSceenShowing(self):
        self.levelData = tiles.load(self.level.datapath)
        self.tilemap_decorations = self.levelData["decorations"]
        self.tilemap_walls = self.levelData["walls"]

        self.layers = [self.tilemap_decorations, self.tilemap_walls]
        self.layers[0].visible = False
        self.layers[1].visible = True
        setattr(self.layers[0], "name", "Decorations Layer")
        setattr(self.layers[1], "name", "Walls Layer")

        if isinstance(self.level.background, str):
            self.bgLayer = layer.ScrollableLayer()
            self.bgLayer.parallax = 0.5
            bgImage = cocos.sprite.Sprite(self.level.background)
            # TODO: Add code to scale image to viewport, then tile it
            self.bgLayer.add(bgImage)

        self.scrollerViewport = rect.Rect(0, int(resheight * 0.12),
                                          int(reswidth), int(resheight * 0.76))
        self.scroller = self.LevelEditorScrollManager(self.scrollerViewport,
                                                      True)
        self.scroller.autoscale = False
        #self.scroller.on_cocos_resize = on_cocos_resize
        self.scroller.scale = 0.8
        self.scroller.viewport = cocos.rect.Rect(0, int(resheight * 0.12),
                                                 int(reswidth),
                                                 int(resheight * 0.76))
        #self.scroller.x = 0
        #self.scroller.y = 0
        self.scroller.add(self.tilemap_decorations, z=-1)
        self.scroller.add(self.tilemap_walls, z=0)
        self.gridLayer = LevelGridLayer(walls=self.tilemap_walls,
                                        decorations=self.tilemap_decorations,
                                        scroller=self.scroller,
                                        level=self.level)
        self.scroller.add(self.gridLayer, z=1)
        self.add(self.bgLayer, z=-5)

        self.add(self.scroller)

        self.headerLayer = layer.ColorLayer(0,
                                            0,
                                            0,
                                            175,
                                            width=int(reswidth),
                                            height=int(resheight * 0.12))
        self.headerLayer.x = 0
        self.headerLayer.y = resheight - self.headerLayer.height

        self.title = text.Label("Level Editor",
                                font_name=resources.font[1],
                                font_size=50,
                                anchor_y="center",
                                anchor_x="center")
        self.title.x = int(self.headerLayer.width / 2)
        self.title.y = int(self.headerLayer.height / 2)

        self.backButton = elements.mediumButton(
            "BACK", events.leveleditorevents.leveleditorGoBack)
        self.backButton.x = int(self.headerLayer.width * 0.065)
        self.backButton.y = int(self.headerLayer.height / 2)

        self.saveButton = elements.mediumButton(
            "SAVE", events.leveleditorevents.levelSave)
        self.saveButton.x = int(self.headerLayer.width * 0.947)
        self.saveButton.y = int(self.headerLayer.height / 2)

        self.discardButton = elements.mediumButton(
            "DISCARD", events.leveleditorevents.levelDiscard)
        self.discardButton.lbl.element.font_size = 13
        self.discardButton.x = int(self.headerLayer.width * 0.857)
        self.discardButton.y = int(self.headerLayer.height / 2)

        #self.editButton

        self.add(self.headerLayer, z=2)

        self.headerLayer.add(self.title)
        self.headerLayer.add(self.saveButton)
        self.headerLayer.add(self.backButton)
        self.headerLayer.add(self.discardButton)

        self.backButton.px = self.saveButton.px = self.discardButton.px = self.headerLayer.x
        self.backButton.py = self.saveButton.py = self.discardButton.py = self.headerLayer.y

        self.backButton.show(0.1)

        self.footerLayer = layer.ColorLayer(0,
                                            0,
                                            0,
                                            125,
                                            width=int(reswidth),
                                            height=int(resheight * 0.12))
        self.footerLayer.x = 0
        self.footerLayer.y = 0
        self.add(self.footerLayer, z=2)

        self.upButton = elements.smallButton("\u2b9d", self.moveUp)
        self.rightButton = elements.smallButton("\u2b9e", self.moveRight)
        self.leftButton = elements.smallButton("\u2b9c", self.moveLeft)
        self.downButton = elements.smallButton("\u2b9f", self.moveDown)

        self.upButton.x = self.footerLayer.width * 0.92
        self.upButton.y = self.footerLayer.height * 0.75

        self.rightButton.x = self.footerLayer.width * 0.955
        self.rightButton.y = self.footerLayer.height * 0.5

        self.leftButton.x = self.footerLayer.width * 0.885
        self.leftButton.y = self.footerLayer.height * 0.5

        self.downButton.x = self.footerLayer.width * 0.92
        self.downButton.y = self.footerLayer.height * 0.25

        self.itemRows = ItemPackRows()
        self.activeLayerSelection = ActiveLayerSelection()
        self.activeLayerSelection.changeLabel.element.text = self.layers[
            1].name

        self.footerLayer.add(self.upButton)
        self.footerLayer.add(self.rightButton)
        self.footerLayer.add(self.leftButton)
        self.footerLayer.add(self.downButton)
        self.footerLayer.add(self.itemRows)
        self.footerLayer.add(self.activeLayerSelection)

        self.upButton.show(0.1)
        self.rightButton.show(0.1)
        self.leftButton.show(0.1)
        self.downButton.show(0.1)

        self.scroller.set_focus(int(self.tilemap_walls.view_w / 2),
                                int(self.tilemap_walls.view_h / 2))
        self.scrollerFocusLimits = {
            "up": 0,
            "down": int(self.tilemap_walls.view_h / 2),
            "left": int(self.tilemap_walls.view_w / 2),
            "right": 0
        }

        self.intro.do(cocos.actions.Delay(3) + cocos.actions.FadeOut(1))
        self.intro.title.do(cocos.actions.Delay(3) + cocos.actions.FadeOut(1))
        self.intro.desc.do(cocos.actions.Delay(3) + cocos.actions.FadeOut(1))
Ejemplo n.º 16
0
def main():
    global keyboard, scroller
    from cocos.director import director
    director.init(width=800, height=600, autoscale=False, resizable=True)
    global startAction, doTask, isPack, cel, ruch, isPicked, packAdres

    scroller = layer.ScrollingManager()
    test_layer = tiles.load('mapaSZI.tmx')['Warstwa Kafelków 1']
    obj = tiles.load('mapa.tmx')['GameObjects']
    poi = tiles.load('mapa.tmx')['Points']
    scroller.add(test_layer)
    #0=start, 1=up, 2=bottom 3=bottom1,
    #0=wojtyniaka, 1=mickiewicza, 2=kopernika, 3=orlicza, 4= kuchnia, 5=borsuka
    kelner_layer = layer.ScrollableLayer()
    kelner = cocos.sprite.Sprite('kelner.png')
    kelner_layer.add(kelner)

    miejsca = {}
    startX = poi.objects[0].x
    startY = poi.objects[0].y
    miejsca['start'] = (startX, startY)

    upX = poi.objects[1].x
    upY = poi.objects[1].y
    miejsca['up'] = (upX, upY)

    bottomX = poi.objects[2].x
    bottomY = poi.objects[2].y
    miejsca['bottom'] = (bottomX, bottomY)

    bottom1X = poi.objects[3].x
    bottom1Y = poi.objects[3].y
    miejsca['bottom1'] = (bottom1X, bottom1Y)

    stacjaX = obj.objects[0].x
    stacjaY = obj.objects[0].y
    miejsca['stacja'] = (stacjaX, stacjaY)

    micX = obj.objects[1].x
    micY = obj.objects[1].y
    miejsca['mickiewicza'] = (micX, micY)

    kopX = obj.objects[2].x
    kopY = obj.objects[2].y
    miejsca['kopernika'] = (kopX, kopY)

    orlX = obj.objects[3].x
    orlY = obj.objects[3].y
    miejsca['orlicza'] = (orlX, orlY)

    pasX = obj.objects[4].x
    pasY = obj.objects[4].y
    miejsca['pascala'] = (pasX, pasY)

    borX = obj.objects[5].x
    borY = obj.objects[5].y
    miejsca['borsuka'] = (borX, borY)

    G = Graf()
    G.add_vertex('start')
    G.add_vertex('mickiewicza')
    G.add_vertex('up')
    G.add_vertex('borsuka')
    G.add_vertex('bottom1')
    G.add_vertex('stacja')
    G.add_vertex('pascala')
    G.add_vertex('orlicza')
    G.add_vertex('bottom')
    G.add_vertex('kopernika')
    G.add_edge('start', 'mickiewicza', 9)
    G.add_edge('mickiewicza', 'up', 2)
    G.add_edge('up', 'borsuka', 2)
    G.add_edge('borsuka', 'bottom1', 4)
    G.add_edge('bottom1', 'stacja', 1)
    G.add_edge('bottom1', 'pascala', 3)
    G.add_edge('pascala', 'orlicza', 5)
    G.add_edge('orlicza', 'bottom', 3)
    G.add_edge('bottom', 'kopernika', 3)
    G.add_edge('kopernika', 'start', 3)

    G.add_edge('mickiewicza', 'start', 9)
    G.add_edge('up', 'mickiewicza', 2)
    G.add_edge('borsuka', 'up', 2)
    G.add_edge('bottom1', 'borsuka', 4)
    G.add_edge('stacja', 'bottom1', 1)
    G.add_edge('pascala', 'bottom1', 3)
    G.add_edge('orlicza', 'pascala', 5)
    G.add_edge('bottom', 'orlicza', 3)
    G.add_edge('kopernika', 'bottom', 3)
    G.add_edge('start', 'kopernika', 3)

    print(shortest_path(G, 'mickiewicza', 'pascala'))

    short = shortest_path(G, 'mickiewicza', 'pascala')

    kelner.position = miejsca['start']
    kelner.rotation = 90

    ruch = MoveTo(miejsca['start'], 0)
    for i in short:
        ruch += MoveTo(miejsca[i], 2)
        kelner.do(ruch)

    scroller.add(kelner_layer)
    main_scene = cocos.scene.Scene(scroller)

    director.run(main_scene)
Ejemplo n.º 17
0
def main():
    global keyboard, scroller, old_ij, old_cell, old_highlighted_color
    from cocos.director import director
    director.init(width=600, height=300, autoscale=False, resizable=True)

    car_layer = layer.ScrollableLayer()
    car = cocos.sprite.Sprite('car.png')
    car_layer.add(car)
    car.position = (200, 100)
    car.max_forward_speed = 200
    car.max_reverse_speed = -100
    car.do(DriveCar())

    scroller = layer.ScrollingManager()
    map_loaded = tiles.load('hexmap.tmx')
    # In Tiled we named 'tile_layer_1' our sample layer
    test_layer = map_loaded['tile_layer_1']
    tint_green_hexmap_borders(test_layer)
    scroller.add(test_layer)
    scroller.add(car_layer)

    old_ij = 'nonexist'
    old_highlighted_color = None
    old_cell = None

    main_scene = cocos.scene.Scene(scroller)

    keyboard = key.KeyStateHandler()
    director.window.push_handlers(keyboard)

    def on_key_press(key, modifier):
        if key == pyglet.window.key.Z:
            if scroller.scale == .75:
                scroller.do(actions.ScaleTo(1, 2))
            else:
                scroller.do(actions.ScaleTo(.75, 2))
        elif key == pyglet.window.key.D:
            test_layer.set_debug(True)
        elif key == pyglet.window.key.Q:
            tint_red_hexmap_borders(test_layer)

    director.window.push_handlers(on_key_press)

    def on_mouse_motion(x, y, dx, dy):
        global scroller, old_ij, old_cell, old_highlighted_color
        #vh, vy = director.get_virtual_coordinates(x, y)
        vx, vy = scroller.screen_to_world(x, y)
        ij = test_layer.get_key_at_pixel(vx, vy)
        if ij == old_ij:
            return
        # restore color
        if old_cell:
            p, q = old_ij
            if old_highlighted_color is None:
                test_layer.set_cell_color(p, q, (255, 255, 255))
                del old_cell.properties['color4']
            else:
                test_layer.set_cell_color(p, q, old_highlighted_color[:3])

        # record info and set color
        old_ij = ij
        i, j = ij
        print(i, j)
        old_cell = test_layer.get_cell(i, j)
        if old_cell is None:
            return
        old_highlighted_color = old_cell.properties.get('color4', None)
        test_layer.set_cell_color(i, j, (255, 0, 0))

    director.window.push_handlers(on_mouse_motion)

    director.run(main_scene)
Ejemplo n.º 18
0
            for x in range(len(self.squares_matrix)):
                if self.squares_matrix[x][y] is None:
                    row += ' |'
                else:
                    row += '*|'
            s = row + '\n' + s
        if label is not None:
            s = label + '\n' + s
        return s


class ShouldntHappenError(UserWarning):
    pass


#===============================================================================
#===========                    MAIN SCRIPT                     ================
#===============================================================================

if __name__ == '__main__':
    director.init(resizable=True)
    tetris_board = TetrisBoardLayer('tetris.xml')
    scroller = layer.ScrollingManager()
    scroller.set_focus(100, 200)
    scroller.add(tetris_board)

    s = layer.ScrollableLayer()
    scroller.add(s)

    director.run(scene.Scene(scroller))