def __init__(self, fname, scale=1): """__init__ parameters: self fname: path to the model file scale=1: optional scaling factor for the model returns: none Description: Loads a model from a file and makes it ready for instancing. Also applies node optimization and batches the static models. """ if Model.combiner == 0: Model.combiner = NodePath(RigidBodyCombiner("rbc")) Model.combiner.reparentTo(render) self.modelRoot = collision.loadAndPositionModelFromFile(fname, scale, show=0) self.modelRoot.flattenStrong() self.modelRoot.reparentTo(Model.combiner)
def loadModels(self): """loadModels parameters: self returns: none Description: Loads the models and related collisions. Most game init goes here. """ # create the environment self.env = collision.loadAndPositionModelFromFile("../assets/3d/mayaActors/arena_collisions_nogrid.egg") self.envBoxes = objects.genBulletBoxes(self.env,self.world) #load objects out of the environment #human self.mover = Human(self,self.world,self.worldNP) tmp = self.env.find("**/PlayerSpawn1") self.mover.bulletInit(self.world,tmp.getPos()) tmp.detachNode() #AI players self.players = objects.loadPlayers(self.env,self.world,self.worldNP) for i in range(0,5): self.players[i].bulletInit(self.world,self.players[i].instance.getPos()) #Spawners collisionHandler=0 self.aTrapSpawn = objects.loadTrapAs(self.env, self.world, self.worldNP) self.bTrapSpawn = objects.loadTrapBs(self.env, self.world, self.worldNP) self.ammoSpawn = objects.loadAmmo(self.env, self.world, self.worldNP) #optimization self.env.flattenStrong() render.analyze() self.crowd = loader.loadModel("../assets/3d/Actors/crowd.egg") self.crowd.reparentTo(render) self.crowd.setScale(10) self.crowd.setPos(0,0,-1000)