Beispiel #1
0
class main(dragonfly.pandahive.pandahive):
    blocks = blocks
    gridx = 10
    gridy = 20
    mainarea = box2d(100, 150, 225, 375)
    mainarea_id = "main"
    mainarea_parameters = parameters(color=(0.5, 0.5, 0.5, 0))
    scorearea = box2d(170, 100, 80, 40)
    scorearea_id = "score"

    # define bee.attribute derivatives, allowing proper inheritance
    blocks_ = attribute("blocks")
    gridx_ = attribute("gridx")
    gridy_ = attribute("gridy")
    mainarea_ = attribute("mainarea")
    mainarea_parameters_ = attribute("mainarea_parameters")
    mainarea_id_ = attribute("mainarea_id")
    scorearea_ = attribute("scorearea")
    scorearea_id_ = attribute("scorearea_id")

    maingrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    maingridcontrol = dragonfly.grid.bgridcontrol()
    connect(maingrid, maingridcontrol.grid)

    blockgrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    blockgridcontrol = dragonfly.grid.bgridcontrol()
    connect(blockgrid, blockgridcontrol.grid)

    select_block = tetris_select_block(blocks=blocks_)

    test = dragonfly.std.trigger()
    connect(test, select_block)
    connect(select_block, blockgrid)
Beispiel #2
0
class main(dragonfly.pandahive.pandahive):
    blocks = blocks
    gridx = 10
    gridy = 20
    mainarea = box2d(100, 150, 225, 375)
    mainarea_id = "main"
    mainarea_parameters = parameters(color=(0.5, 0.5, 0.5, 0))
    scorearea = box2d(170, 100, 80, 40)
    scorearea_id = "score"

    canvas = dragonfly.pandahive.pandacanvas()

    blocks_ = attribute("blocks")
    gridx_ = attribute("gridx")
    gridy_ = attribute("gridy")
    mainarea_ = attribute("mainarea")
    mainarea_parameters_ = attribute("mainarea_parameters")
    mainarea_id_ = attribute("mainarea_id")
    scorearea_ = attribute("scorearea")
    scorearea_id_ = attribute("scorearea_id")

    c0 = configure("canvas")  # must have a lower-alphabet name than "canvas"
    c0.reserve(mainarea_id_, ("object", "bgrid"),
               box=mainarea_,
               parameters=mainarea_parameters_)

    maingrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    maingridcontrol = dragonfly.grid.bgridcontrol()
    connect(maingrid, maingridcontrol.grid)

    blockgrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    blockgridcontrol = dragonfly.grid.bgridcontrol()
    connect(blockgrid, blockgridcontrol.grid)

    select_block = tetris_select_block(blocks=blocks_)
    connect(select_block, blockgridcontrol.set)
    init_main = tetris_init_main(gridx_, gridy_)
    connect(init_main, maingridcontrol.set)
    draw = tetris_draw()
    connect(maingrid, draw.maingrid)
    connect(blockgrid, draw.blockgrid)

    control = tetris_control()
    connect(maingrid, control.maingrid)
    connect(blockgrid, control.blockgrid)

    start = dragonfly.sys.startsensor()
    connect(start, select_block)
    connect(start, init_main.start)
    connect(start, control.place_init)
    connect(start, draw.start)
    connect(start, draw.draw)

    raiser = bee.raiser()
    connect("evexc", raiser)
Beispiel #3
0
class myscene(dragonfly.pandahive.spyderframe):
    pandaicon_ = bee.get_parameter("pandaicon")

    a = Spyder.AxisSystem()
    a *= 0.25
    a.origin += (-8, 42, 0)
    env = Spyder.Model3D("models/environment", "egg", a)

    a = Spyder.AxisSystem()
    a *= 0.005
    mypanda = Spyder.Actor3D("models/panda-model",
                             "egg", [("walk", "models/panda-walk4", "egg")],
                             a,
                             entityname="mypanda")

    a = Spyder.AxisSystem()
    a *= 0.005
    pandaclass = Spyder.ActorClass3D("models/panda-model",
                                     "egg",
                                     [("walk", "models/panda-walk4", "egg")],
                                     a,
                                     actorclassname="pandaclass")

    box = box2d(50, 470, 96, 96)
    params = parameters()
    params.transparency = True
    args = canvasargs("pandaicon.png", pandaicon_, box, params)
    plugin = plugin_single_required(args)
    pattern = ("canvas", "draw", "init", ("object", "image"))
    d1 = dummydrone(plugindict={pattern: plugin})

    i1 = bee.init("mousearea")
    i1.register(pandaicon_, box)

    del a, box, params, args, plugin, pattern
    def __init__(self, canvasdrone, ctb, identifier, parameters):
        if panda3d is None: raise ImportError("Cannot locate Panda3D")
        from dragonfly.canvas import box2d

        if identifier is None: identifier = ""
        self.node = None
        box = box2d(ctb.posx, ctb.posy, ctb.sizex, ctb.sizey, ctb.sizemode)
        self.pnode = canvasdrone._get_parent_nodepath(identifier, box)
        self._show(ctb, identifier)
    def __init__(self, canvasdrone, ctb, identifier, parameters):
        if panda3d is None: raise ImportError("Cannot locate Panda3D")
        from dragonfly.canvas import box2d

        if identifier is None: identifier = ""
        self.node = None
        box = box2d(ctb.posx, ctb.posy, ctb.sizex, ctb.sizey, ctb.sizemode)
        self.pnode = canvasdrone._get_parent_nodepath(identifier, box)
        self._show(ctb, identifier)
Beispiel #6
0
    def __init__(self, canvasdrone, ctb, identifier, parameters):
        if not has_bgl: raise ImportError("Cannot import bgl")
        from dragonfly.canvas import box2d

        if identifier is None: identifier = ""
        box = box2d(ctb.posx, ctb.posy, ctb.sizex, ctb.sizey, ctb.sizemode)
        self.pnode = canvasdrone._get_parent_bglnode(identifier, box)
        #register self as a child of pnode: pnode will now invoke self.draw() every frame
        self.pnode.children = [self]
        self.update(ctb, identifier, parameters)
    def __init__(self, canvasdrone, ctb, identifier, parameters):
        if not has_bgl: raise ImportError("Cannot import bgl")
        from dragonfly.canvas import box2d

        if identifier is None: identifier = ""
        box = box2d(ctb.posx, ctb.posy, ctb.sizex, ctb.sizey, ctb.sizemode)
        self.pnode = canvasdrone._get_parent_bglnode(identifier, box)
        #register self as a child of pnode: pnode will now invoke self.draw() every frame
        self.pnode.children = [self]
        self.update(ctb, identifier, parameters)
Beispiel #8
0
class myscene(bee.frame):
    pandaclassname_ = bee.get_parameter("pandaclassname")
    pandaname_ = bee.get_parameter("pandaname")
    pandaicon_ = bee.get_parameter("pandaicon")

    c1 = bee.configure("scene")
    c1.import_mesh_EGG("models/environment")
    a = NodePath("")
    a.setScale(0.25)
    a.setPos(-8, 42, 0)
    mat = a.getMat()
    m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2))
    c1.add_model_MATRIX(matrix=m)

    c2 = bee.configure("scene")
    c2.import_mesh_EGG("models/panda-model")
    a = NodePath("")
    a.setScale(0.005)
    mat = a.getMat()
    m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2))
    c2.add_actor_MATRIX(matrix=m, entityname=pandaname_)
    c2.import_mesh_EGG("models/panda-walk4")
    c2.add_animation("walk")

    c3 = bee.configure("scene")
    c3.import_mesh_EGG("models/panda-model")
    a = NodePath("")
    a.setScale(0.005)
    mat = a.getMat()
    m = (mat.getRow3(3), mat.getRow3(0), mat.getRow3(1), mat.getRow3(2))
    c3.add_actorclass_MATRIX(matrix=m, actorclassname=pandaclassname_)
    c3.import_mesh_EGG("models/panda-walk4")
    c3.add_animation("walk")

    box = box2d(50, 470, 96, 96)
    params = parameters()
    params.transparency = True
    args = canvasargs("pandaicon.png", pandaicon_, box, params)
    plugin = plugin_single_required(args)
    pattern = ("canvas", "draw", "init", ("object", "image"))
    d1 = dummydrone(plugindict={pattern: plugin})

    i1 = bee.init("mousearea")
    i1.register(pandaicon_, box)

    del a, m, mat, box, params, args, plugin, pattern
Beispiel #9
0
def reserve_slot(slot):
  import bee
  from bee.types import stringtupleparser
  from dragonfly.canvas import box2d
  c = bee.configure(slot.canvasname)
  b = slot.box
  box = box2d(b.x, b.y, b.sizex, b.sizey, b.mode)
  params = None
  col = slot.color
  if col is not None:
    params = parameters(color=(col.r,col.g,col.b,col.a))
  c.reserve (
   slot.slotname,
   stringtupleparser(slot.slottype),
   box=box,
   parameters=params,
  )
  return c
Beispiel #10
0
class myscene(bee.frame):
    pandaclassname_ = bee.get_parameter("pandaclassname")
    pandaname_ = bee.get_parameter("pandaname")
    pandaicon_ = bee.get_parameter("pandaicon")

    c1 = bee.configure("scene")
    c1.import_mesh_EGG("models/environment")
    a = Spyder.AxisSystem()
    a *= 0.25
    a.origin += (-8, 42, 0)
    c1.add_model_SPYDER(axissystem=a)

    c2 = bee.configure("scene")
    c2.import_mesh_EGG("models/panda-model")
    a = Spyder.AxisSystem()
    a *= 0.005
    c2.add_actor_SPYDER(axissystem=a, entityname=pandaname_)
    c2.import_mesh_EGG("models/panda-walk4")
    c2.add_animation("walk")

    c3 = bee.configure("scene")
    c3.import_mesh_EGG("models/panda-model")
    a = Spyder.AxisSystem()
    a *= 0.005
    c3.add_actorclass_SPYDER(axissystem=a, actorclassname=pandaclassname_)
    c3.import_mesh_EGG("models/panda-walk4")
    c3.add_animation("walk")

    box = box2d(50, 470, 96, 96)
    params = parameters()
    params.transparency = True
    args = canvasargs("pandaicon.png", pandaicon_, box, params)
    plugin = plugin_single_required(args)
    pattern = ("canvas", "draw", "init", ("object", "image"))
    d1 = dummydrone(plugindict={pattern: plugin})

    i1 = bee.init("mousearea")
    i1.register(pandaicon_, box)

    del a, box, params, args, plugin, pattern
Beispiel #11
0
class main(dragonfly.pandahive.pandahive):
    blocks = blocks
    gridx = 10
    gridy = 20
    mainarea = box2d(100, 150, 225, 375)
    mainarea_id = "main"
    mainarea_parameters = parameters(color=(0.5, 0.5, 0.5, 0))
    scorearea = box2d(170, 100, 80, 40)
    scorearea_id = "score"

    canvas = dragonfly.pandahive.pandacanvas()

    blocks_ = attribute("blocks")
    gridx_ = attribute("gridx")
    gridy_ = attribute("gridy")
    mainarea_ = attribute("mainarea")
    mainarea_parameters_ = attribute("mainarea_parameters")
    mainarea_id_ = attribute("mainarea_id")
    scorearea_ = attribute("scorearea")
    scorearea_id_ = attribute("scorearea_id")

    c0 = configure("canvas")  # must have a lower-alphabet name than "canvas"
    c0.reserve(mainarea_id_, ("object", "bgrid"),
               box=mainarea_,
               parameters=mainarea_parameters_)

    maingrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    maingridcontrol = dragonfly.grid.bgridcontrol()
    connect(maingrid, maingridcontrol.grid)

    blockgrid = dragonfly.std.variable(("object", "bgrid"))(emptygrid)
    blockgridcontrol = dragonfly.grid.bgridcontrol()
    connect(blockgrid, blockgridcontrol.grid)

    select_block = tetris_select_block(blocks=blocks_)
    connect(select_block, blockgridcontrol.set)
    init_main = tetris_init_main(gridx_, gridy_)
    connect(init_main, maingridcontrol.set)
    draw = tetris_draw()
    connect(maingrid, draw.maingrid)
    connect(blockgrid, draw.blockgrid)

    control = tetris_control()
    connect(maingrid, control.maingrid)
    connect(blockgrid, control.blockgrid)

    start = dragonfly.sys.startsensor()
    connect(start, select_block)
    connect(start, init_main.start)
    connect(start, control.place_init)
    connect(start, draw.start)
    connect(start, draw.draw)

    period = dragonfly.std.variable("float")(0.3)
    cycle = dragonfly.time.cycle()
    connect(period, cycle)

    connect(cycle, control.move_down)
    connect(cycle, draw.draw)
    connect(control.dropped, select_block)
    connect(control.dropped, control.place_init)
    connect(control.lost, "exitactuator")

    k_left = dragonfly.io.keyboardsensor_trigger("LEFT")
    connect(k_left, control.move_left)
    connect(k_left, draw.draw)
    k_right = dragonfly.io.keyboardsensor_trigger("RIGHT")
    connect(k_right, control.move_right)
    connect(k_right, draw.draw)

    k_return = dragonfly.io.keyboardsensor_trigger("RETURN")
    connect(k_return, control.rotate_cw)
    connect(k_return, draw.draw)
    k_space = dragonfly.io.keyboardsensor_trigger("SPACE")
    connect(k_space, control.rotate_ccw)
    connect(k_space, draw.draw)

    k_down = dragonfly.io.keyboardsensor_trigger("DOWN")
    connect(k_down, control.drop)
    connect(k_down, draw.draw)

    raiser = bee.raiser()
    connect("evexc", raiser)
Beispiel #12
0
for n in range(grid.minx, grid.maxx + 1):
    for nn in range(grid.miny, grid.maxy + 1):
        if random.random() < 0.5: grid.set_true(n, nn)


#create our main hive class
class myhive(dragonfly.pandahive.pandahive):
    canvas = dragonfly.pandahive.pandacanvas()


#initialize our hive
m = myhive().getinstance()
m.build("myhive")
m.place()
m.close()
m.init()


#set up drawing parameters for the grid
class parameters(object):
    pass


box = box2d(x=100, y=50, sizex=500, sizey=500)
params = parameters()
params.color = (0.7, 0.7, 0.7, 0)

#draw the grid and run
m.canvas._draw1(("object", "bgrid"), grid, box, params)
m.run()
Beispiel #13
0
class main(dragonfly.pandahive.pandahive):
    blocks = blocks
    gridx = 10
    gridy = 20
    mainarea = box2d(100, 150, 300, 500)
    scorearea = box2d(170, 100, 80, 40)
Beispiel #14
0
class myhive(dragonfly.pandahive.pandahive):
    canvas = dragonfly.pandahive.pandacanvas()

#initialize our hive
m = myhive().getinstance()
m.build("myhive")
m.place()
m.close()
m.init()

#set up drawing parameters for the grid
class parameters(object):
    pass


box = box2d(x=100, y=50, sizex=500, sizey=500)
params = parameters()
params.color = (0.7, 0.7, 0.7, 0)

#draw the grid and run
gridid = m.canvas._draw1(("object", "bgrid"), grid, box, params)

try:
    m.app.finished = False
    while not m.doexit:
        m.window.taskMgr.step()
        m.canvas._update1(gridid)
        randomize_grid()
        m.pacemaker.tick()
finally:
    m.cleanup()