Exemple #1
0
 def shoot():
     bala = self.particlesDummy.attachNewNode("balaDummy")
     balaImage = OnscreenImage(image="prova/textures/bala.png",
                               parent=bala)
     balaImage.setTransparency(1)
     balaImage.setScale(.1, 1., .2)
     balaImage.setBillboardPointEye()
     bala.setQuat(self.modelAvio.getQuat(render))
     if self.balaPositiu:
         bala.setPos(self.balaDreta.getPos(render))
         self.balaPositiu = False
     else:
         bala.setPos(self.balaEsquerra.getPos(render))
         self.balaPositiu = True
     balaSphere = bala.attachNewNode(self.balaCol)
     balaColHandler = CollisionHandlerQueue()
     base.cTrav.addCollider(balaSphere, balaColHandler)
     #~ if type(self.shootPoint) == 'libpanda.Point3':
     #~ bala.lookAt(self.shootPoint)
     #~ else: bala.setH(bala, 180.)
     taskMgr.add(
         mouBala,
         "moubala",
         extraArgs=[bala, balaImage, self.BALA_VEL, balaColHandler],
         appendTask=True)
Exemple #2
0
 def shoot():
     bala = self.particlesDummy.attachNewNode("balaDummy")
     balaImage = OnscreenImage(image="prova/textures/bala.png", parent=bala)
     balaImage.setTransparency(1)
     balaImage.setScale(0.1, 1.0, 0.2)
     balaImage.setBillboardPointEye()
     bala.setQuat(self.modelAvio.getQuat(render))
     if self.balaPositiu:
         bala.setPos(self.balaDreta.getPos(render))
         self.balaPositiu = False
     else:
         bala.setPos(self.balaEsquerra.getPos(render))
         self.balaPositiu = True
     balaSphere = bala.attachNewNode(self.balaCol)
     balaColHandler = CollisionHandlerQueue()
     base.cTrav.addCollider(balaSphere, balaColHandler)
     # ~ if type(self.shootPoint) == 'libpanda.Point3':
     # ~ bala.lookAt(self.shootPoint)
     # ~ else: bala.setH(bala, 180.)
     taskMgr.add(mouBala, "moubala", extraArgs=[bala, balaImage, self.BALA_VEL, balaColHandler], appendTask=True)
Exemple #3
0
class Unit:
    def __init__(self, unitID, position, mainClass):
        # 	self = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main['units'][unitID]])

        self.model = mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].model

        self.fullName = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].fullName)
        self.HP = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].HP)
        self.info = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].info)
        self.moveType = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].moveType)
        self.model = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].model)
        self.radius = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].radius)
        self.mass = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].mass)
        self.startForce = copy.copy(
            mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].startForce
        )
        self.maxForce = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].maxForce)
        self.dig = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].dig)
        self.reinforce = copy.copy(
            mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].reinforce
        )
        self.shovel = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].shovel)
        self.hold = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].hold)
        self.modelHeight = copy.copy(
            mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].modelHeight
        )
        self.selectScale = copy.copy(
            mainClass.unitHandler.unitDict[mainClass.unitHandler.main["units"][unitID]].selectScale
        )
        self.job = False

        self.uID = mainClass.unitHandler.unitUniqueID
        print self.uID
        self.modelNode = loader.loadModel(self.model)
        self.modelNode.setName("unit " + str(self.uID).zfill(3))
        self.modelNode.reparentTo(render)
        self.modelNode.setPos(position)
        self.modelNode.setCollideMask(BitMask32.bit(1))

        self.select = OnscreenImage(image="data/models/game/selected.png")
        self.select.setScale(float(self.selectScale))
        self.select.reparentTo(self.modelNode)
        self.select.setZ(float(self.modelHeight) / 2)
        self.select.setTransparency(TransparencyAttrib.MAlpha)
        self.select.setBillboardPointEye()
        self.select.hide()

        self.groundRay = CollisionRay()
        self.groundRay.setOrigin(0, 0, 100)
        self.groundRay.setDirection(0, 0, -1)

        self.groundCol = CollisionNode("unit Ray")
        self.groundCol.addSolid(self.groundRay)
        self.groundCol.setTag("units", "ray1")

        self.groundCol.setFromCollideMask(BitMask32.bit(0))
        self.groundCol.setIntoCollideMask(BitMask32.allOff())
        self.groundColNp = self.modelNode.attachNewNode(self.groundCol)
        self.groundColNp.setPos(0, 0, 0)
        self.groundHandler = CollisionHandlerFloor()
        self.groundHandler.setMaxVelocity(100)

        base.cTrav2.addCollider(self.groundColNp, self.groundHandler)

        self.groundHandler.addCollider(self.groundColNp, self.modelNode)

        self.AI = AICharacter(self.fullName, self.modelNode, self.mass * 2, self.startForce * 2, self.maxForce * 2)
        mainClass.unitHandler.AIWorld.addAiChar(self.AI)
        self.AIBehaviors = self.AI.getAiBehaviors()

        if self.moveType == "ground":
            self.aStar = astar.aStar(mainClass.unitHandler.meshes.landMesh, mainClass)
        elif self.moveType == "water":
            self.aStar = astar.aStar(mainClass.unitHandler.meshes.waterMesh, mainClass)
        elif self.moveType == "air":
            self.aStar = astar.aStar(mainClass.unitHandler.meshes.airMesh, mainClass)

        print self
Exemple #4
0
class Unit:
    def __init__(self, unitID, position, mainClass):
        #	self = copy.copy(mainClass.unitHandler.unitDict[mainClass.unitHandler.main['units'][unitID]])

        self.model = mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].model

        self.fullName = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].fullName)
        self.HP = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].HP)
        self.info = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].info)
        self.moveType = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].moveType)
        self.model = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].model)
        self.radius = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].radius)
        self.mass = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].mass)
        self.startForce = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].startForce)
        self.maxForce = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].maxForce)
        self.dig = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].dig)
        self.reinforce = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].reinforce)
        self.shovel = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].shovel)
        self.hold = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].hold)
        self.modelHeight = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].modelHeight)
        self.selectScale = copy.copy(mainClass.unitHandler.unitDict[
            mainClass.unitHandler.main['units'][unitID]].selectScale)
        self.job = False

        self.uID = mainClass.unitHandler.unitUniqueID
        print self.uID
        self.modelNode = loader.loadModel(self.model)
        self.modelNode.setName('unit ' + str(self.uID).zfill(3))
        self.modelNode.reparentTo(render)
        self.modelNode.setPos(position)
        self.modelNode.setCollideMask(BitMask32.bit(1))

        self.select = OnscreenImage(image='data/models/game/selected.png')
        self.select.setScale(float(self.selectScale))
        self.select.reparentTo(self.modelNode)
        self.select.setZ(float(self.modelHeight) / 2)
        self.select.setTransparency(TransparencyAttrib.MAlpha)
        self.select.setBillboardPointEye()
        self.select.hide()

        self.groundRay = CollisionRay()
        self.groundRay.setOrigin(0, 0, 100)
        self.groundRay.setDirection(0, 0, -1)

        self.groundCol = CollisionNode('unit Ray')
        self.groundCol.addSolid(self.groundRay)
        self.groundCol.setTag('units', 'ray1')

        self.groundCol.setFromCollideMask(BitMask32.bit(0))
        self.groundCol.setIntoCollideMask(BitMask32.allOff())
        self.groundColNp = self.modelNode.attachNewNode(self.groundCol)
        self.groundColNp.setPos(0, 0, 0)
        self.groundHandler = CollisionHandlerFloor()
        self.groundHandler.setMaxVelocity(100)

        base.cTrav2.addCollider(self.groundColNp, self.groundHandler)

        self.groundHandler.addCollider(self.groundColNp, self.modelNode)

        self.AI = AICharacter(self.fullName, self.modelNode, self.mass * 2,
                              self.startForce * 2, self.maxForce * 2)
        mainClass.unitHandler.AIWorld.addAiChar(self.AI)
        self.AIBehaviors = self.AI.getAiBehaviors()

        if (self.moveType == 'ground'):
            self.aStar = astar.aStar(mainClass.unitHandler.meshes.landMesh,
                                     mainClass)
        elif (self.moveType == 'water'):
            self.aStar = astar.aStar(mainClass.unitHandler.meshes.waterMesh,
                                     mainClass)
        elif (self.moveType == 'air'):
            self.aStar = astar.aStar(mainClass.unitHandler.meshes.airMesh,
                                     mainClass)

        print self

    #	mainClass.unitHandler.unitUniqueID += 1