예제 #1
0
    def __init__(self, hud):
        super().__init__()

        try:
            fullmap = load("mario-world1-1.tmx")
        except Exception as e:
            raise SystemExit(e)

        bg_map = fullmap["Background"]
        fg_map = fullmap["Foreground"]
        ob_map = fullmap["Objects"]
        tileset = fullmap["Mario"]

        fg_map.do(BlinkBricks())
        fg_map.set_cell_opacity(64, 5, 0)

        scroller = ScrollingManager()
        scroller.add(bg_map, z=0)
        scroller.add(fg_map, z=2)
        scroller.add(GameLayer(hud, fg_map, ob_map, tileset), z=1)

        scroller.scale = 2.5

        self.add(ColorLayer(107, 140, 255, 255), z=0)
        self.add(scroller, z=1)
        self.add(hud, z=10)
예제 #2
0
 def __init__(self, how_many):
     super(BoidLayer, self).__init__()
     self.how_many = how_many
     self.manager = ScrollingManager()
     self.manager.add(self)
     self.active = None
     self.blackboard = blackboard.Blackboard("boids")
     self.boids = None
예제 #3
0
def main():
    director.init(800, 600, resizable=True)
    bg = cocos.layer.ColorLayer(0, 127, 127, 255)

    map_layer = load("maps/world.tmx")["tiles"]  # cocos.tiles.RectMapLayer
    car_layer = CarLayer()
    scroller = ScrollingManager()  # cocos.layer.scrolling.ScrollingManager
    scroller.add(map_layer)
    scroller.add(car_layer)
    print(scroller)

    # main_scene = Scene(ActionMenu(actions))
    main_scene = Scene(TransitionMenu(transitions))
    director.run(Scene(scroller))
예제 #4
0
    def __init__(self, level_xml, speed=30, contents=None):
        super(GameMapBaseScene, self).__init__(contents)

        self.manager = ScrollingManager()
        self.add(self.manager)
        level = tiles.load(level_xml)
        mz = 0
        mx = 0
        for id, layer in level.find(tiles.MapLayer):
            self.manager.add(layer, z=layer.origin_z)
            mz = max(layer.origin_z, mz)
            mx = max(layer.px_width, mx)

        self.level = level
        self.px_width = mx
예제 #5
0
    def __init__(self):
        super(Level1Scene, self).__init__()

        global keyboard, scroller, game_controller, map_layer
        scroller = ScrollingManager()
        keyboard = key.KeyStateHandler()
        director.window.push_handlers(keyboard)

        map_layer = load("tiles/map1/map_3.tmx")['base']
        map_h = (map_layer.cells[-1][-1].y // map_layer.tw + 1)
        map_layer_bg_0 = load("tiles/map1/map_3.tmx")['background']
        map_layer_bg_1 = load("tiles/map1/map_3.tmx")['decorations']

        main_layer = MainLayer()

        scroller.add(map_layer_bg_0, z=-2)
        scroller.add(map_layer_bg_1, z=-1)
        scroller.add(map_layer, z=0)
        scroller.add(main_layer, z=1)

        self.add(scroller)
    def __init__(self, g_c):
        super(Level1Scene, self).__init__()

        global scroller, game_controller, map_layer
        game_controller = g_c
        scroller = ScrollingManager()
        director.window.push_handlers(keyboard)

        map_layer = load("tiles/map1/map_3.tmx")['base']
        map_h = (map_layer.cells[-1][-1].y // map_layer.tw + 1)
        map_layer_bg_0 = load("tiles/map1/map_3.tmx")['background']
        map_layer_bg_1 = load("tiles/map1/map_3.tmx")['decorations']

        main_layer = MainLayer((500, 500))

        scroller.add(map_layer_bg_0, z=-2)
        scroller.add(map_layer_bg_1, z=-1)
        scroller.add(map_layer, z=0)
        scroller.add(main_layer, z=1)

        self.add(scroller)
        self.schedule_interval(main_layer.update,
                               1 / 30)  # 30 times per second
예제 #7
0
def main():
    global m
    director.init()

    m = ScrollingManager()

    fg = ScrollableLayer()
    l = Label('foreground')
    l.position = (100, 100)
    fg.add(l)
    m.add(fg)

    bg = ScrollableLayer(parallax=.5)
    l = Label('background, parallax=.5')
    l.position = (100, 100)
    bg.add(l)
    m.add(bg)

    if autotest:
        m.do( 
              Delay(1) + CallFunc(update_focus, 100, 200) +
              Delay(1) + CallFunc(update_focus, 200, 100) +
              Delay(1) + CallFunc(update_focus, 200, 200)
            )

    main_scene = cocos.scene.Scene(m)

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

    def update(dt):
        m.fx += (keyboard[key.RIGHT] - keyboard[key.LEFT]) * 150 * dt
        m.fy += (keyboard[key.DOWN] - keyboard[key.UP]) * 150 * dt
        m.set_focus(m.fx, m.fy)
    main_scene.schedule(update)

    director.run (main_scene)
예제 #8
0
    def __init__(self, *args, **kwargs):
        super(MyWitch, self).__init__(*args, **kwargs)

        # add a background layer
        self.add(ColorLayer(100, 100, 100, 255))

        scroller = ScrollingManager()
        
        self.fullmap = cocos.tiles.load('maps/platformer-map.xml')

        # add the walls (labyrinth)
        self.walls = self.fullmap['walls']
        scroller.add(self.walls, z=0)

        # add the items (bushes cauldron)
        self.decoration = self.fullmap['decoration']
        scroller.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)
        scroller.add(player_layer, z=2)
        self.add(scroller)

        # 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)
예제 #9
0
    def on_key_release(self, k, _):
        self.pressed[k] = 0

    def on_mouse_press(self, x, y, buttons, modifiers):
        world_x, world_y = self.scroller.screen_to_world(x, y)
        cell = self.obstacle_layer.get_at_pixel(world_x, world_y)
        cell.tile = self.tileset[46]
        self.obstacle_layer.set_dirty()

    def update(self, dt):
        self.actor.update_position(dt, self.pressed)


if __name__ == "__main__":
    director.init(caption="Ball Drops", width=320, height=416)

    map = load("map.tmx")
    background_layer = map["background"]
    obstacle_layer = map["obstacle"]
    objects = map["objects"]
    tileset = map["tileset"]

    scroller = ScrollingManager()
    scroller.add(background_layer, z=0)
    scroller.add(obstacle_layer, z=1)
    scroller.add(GameLayer(obstacle_layer, objects, tileset), z=2)

    scene = Scene()
    scene.add(scroller)
    director.run(scene)
예제 #10
0
        if self.keys_pressed and key in self.keys_pressed:
            self.keys_pressed.remove(key)

    #def draw(self):
    #   self.image.blit(0, 0)


if __name__ == '__main__':

    # change the working dir to the exe temp dir
    # when you use pyinstaller to make a one-file exe package, you need doing this above
    if getattr(sys, 'frozen', False):
        os.chdir(sys._MEIPASS)

    my_game = Game()
    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
    map_layer = cocos.tiles.load('./data/map.tmx')['start']
    my_main = Main_Screen(my_game)
    my_menu = Menu_Screen(my_game)

    # the order of the 'add' makes sense!
    game_screen.add(map_layer)
    game_screen.add(my_main)

    main_scene = Scene(my_menu)
    #print ('game initialised')
    cocos.director.director.run(main_scene)

    #print('game end')
예제 #11
0
class GameObj:
    my_director = director
    my_director.init()
    map_layer = load('map01.tmx')['solid']
    scroller = ScrollingManager()
    keyboard = key.KeyStateHandler()
예제 #12
0
## global variable for audio
audiomixer = pygame.mixer
audiomixer.init()
clicksound = audiomixer.Sound('sounds/click.ogg')
bgmplayed = False

## global list for plotting
num_flowers_list = [0] * 7
volumes = []
pitches = []
time_data = []

director.init(width=WIDTH, height=HEIGHT, autoscale=False, resizable=False)

#scroller for testing background
scroller_test = ScrollingManager()
mapLayer_test = load("assets/map/wood_blocker.tmx")["TileLayer1"]
scroller_test.add(mapLayer_test)

#scroller for game background
scroller = ScrollingManager()
mapLayer = load("assets/map/map_garden_back_01.tmx")["TileLayer1"]
scroller.add(mapLayer)

#scroller_menu for menu background
scroller_menu = ScrollingManager()
mapLayer_menu = load("assets/map/map_menu.tmx")["TileLayer1"]
scroller_menu.add(mapLayer_menu)


# class for testing voice
예제 #13
0
import cocos
from cocos.layer import ScrollableLayer, ScrollingManager, MultiplexLayer, Layer
from cocos.sprite import Sprite
from cocos.actions import *
from cocos.scene import Scene
from Level1_Hero import Level1_Hero
from pyglet.window import key
from cocos.director import director
from cocos.scenes.transitions import *
from cocos.text import Label

import PauseScene
import Sound

scroller_1 = ScrollingManager()


class Level1_Background(ScrollableLayer):
    is_event_handler = True  #: enable director.window events

    def __init__(self):
        super(Level1_Background, self).__init__()

        bg = Sprite('res/maps/Level1/level1.png')
        bg.position = bg.width // 2, bg.height // 2

        lvl1 = Sprite('res/maps/Level1/LVL1.png')
        lvl1.position = (420, 500)
        lvl1.scale = 0.7
        blink = Blink(10, 3)
        lvl1.do(blink)
예제 #14
0
import cocos
from cocos.layer import ScrollableLayer, ScrollingManager
from cocos.sprite import Sprite
from cocos.scene import Scene
from cocos.actions import *
from Level2_Hero import Level2_Hero
from pyglet.window import key
from cocos.director import director
from cocos.scenes.transitions import *
import Sound
import PauseScene

scroller_2 = ScrollingManager()


class Level2_Background(ScrollableLayer):
    is_event_handler = True  #: enable director.window events

    def __init__(self):
        super(Level2_Background, self).__init__()

        bg = Sprite('res/maps/Level2/level2.png')

        bg.position = bg.width // 2, bg.height // 2

        self.px_width = bg.width
        self.px_height = bg.height

        lvl2 = Sprite('res/maps/Level2/LVL2.png')
        lvl2.position = (420, 500)
        lvl2.scale = 0.7
예제 #15
0
import cocos
from cocos.layer import ScrollableLayer, ScrollingManager
from cocos.sprite import Sprite
from cocos.scene import Scene
from Level3_Hero import Level3_Hero
from pyglet.window import key
from cocos.actions import *
from cocos.director import director
from cocos.scenes.transitions import *
import Sound
import PauseScene

scroller_3 = ScrollingManager()


class Level3_Background(ScrollableLayer):
    is_event_handler = True  #: enable director.window events

    def __init__(self):
        super(Level3_Background, self).__init__()

        bg = Sprite('res/maps/Level3/level3.png')

        bg.position = bg.width // 2, bg.height // 2

        self.px_width = bg.width
        self.px_height = bg.height

        self.add(bg)

        lvl3 = Sprite('res/maps/Level3/LVL3.png')