Пример #1
0
 def __init__(self):
   Widget.__init__(self, size=WH)
   self.bridgeMap = {} # ex)bridgeMap[id1] = {id2:[gate1ID, gate2ID], ...}
   self.gateMap = {} # ex)gateMap[gate1id] = [gate2id, (obj1ID, obj2ID)]
   self.pathMap = {} # ex)pathMap[id1] = {targetID:nextObjID, ...}
   self.generatePathList = set()
   self.bridge_texture = gResMgr.getTex("bridge")
   self.bridge_texture.wrap =  "repeat"
Пример #2
0
    def reset(self, parentObj, xml_data):
        if self == parentObj:
            return
        # init data
        self.xml_data = xml_data
        self.parentObj = parentObj
        self.childObj = []
        self.pTouch = None
        self.bTouchMoved = False
        self.bRedrawBridge = False
        self.bMove = False
        self.bJump = False
        self.fJump = 0.0
        self.vStartPos = [0, 0]
        self.vTargetPos = [0, 0]
        self.pTargetObj = None
        self.nTargetObjID = -1
        self.pOldTargetObj = None
        self.nOldTargetObjID = -1
        self.pPathList = []
        self.pStartFromObj = None
        self.nStartFromObjID = -1
        self.pCurArriveObj = None
        self.nCurArriveObjID = -1
        self.pDrawOnObj = None
        self.vMoveDir = [0, 0]
        self.fMoveTime = 0.0
        self.fMoveTimeAcc = 0.0

        # set icon
        if self.icon:
            self.box.texture = gResMgr.getTex(self.icon)

        # create new data
        if xml_data == None:
            self.setNewName(self)
            self.setID(-1)
            self.setPos(cXY)
            # add door
            if self.bHasDoor:
                door = self.add_childObj("Door")
                door.center = mul(WH, (0.5, 0.15))
                door.setPos(door.pos)
        # adjust loading data
        else:
            self.setID(int(xml_data.get("id")))
            self.setName(xml_data.get("name"))
            # adjust screen ratio
            self.setPos(mul(eval(xml_data.get("pos")), (gWorldEdit.widthRatio, gWorldEdit.heightRatio)))
            self.setRotation(eval(xml_data.get("rotation")))

        # set floor pos
        self.fFloorPos = self.getCurPos()[1]
        # add to worldedit
        if self.bDrawAlways:
            gWorldEdit.addDrawAlwaysObj(self)
        # regist object
        gWorldEdit.registObjID(self)