Пример #1
0
 def initGlass(self, world, space, width, height):
     engine.deleteModel(self.node, "models/fragment/GlassFragment")
     maker = CardMaker("glassNode")
     maker.setFrame(-width / 2.0, width / 2.0, -height / 2.0, height / 2.0)
     maker.setUvRange(Point2(0.0, 0.0), Point2(width, height) * 0.04)
     self.node = hidden.attachNewNode(maker.generate())
     self.node.setTexture(loader.loadTexture("models/fragment/glass.png"))
     self.node.setTwoSided(True)
     self.node.setTransparency(TransparencyAttrib.MAlpha)
     self.node.setName(str(int(self.id)))
     self.node.hide(BitMask32.bit(4))  # Don't cast shadows
     self.radius = width / 2.0
     self.vradius = height / 2.0
     self.collisionNode = CollisionNode("cnode")
     point1 = Point3(-width / 2.0, 0, -height / 2.0)
     point2 = Point3(-width / 2.0, 0, height / 2.0)
     point3 = Point3(width / 2.0, 0, height / 2.0)
     point4 = Point3(width / 2.0, 0, -height / 2.0)
     self.collisionNode.addSolid(
         CollisionPolygon(point4, point3, point2, point1))
     self.collisionNode.addSolid(
         CollisionPolygon(point1, point2, point3, point4))
     self.collisionNodePath = self.node.attachNewNode(self.collisionNode)
     self.geometry = OdeBoxGeom(space, width, 0.5, height)
     self.geometry.setCollideBits(BitMask32(0x00000001))
     self.geometry.setCategoryBits(BitMask32(0x00000001))
     space.setSurfaceType(self.geometry, 1)
     self.shattered = False
     self.glassWidth = width
     self.glassHeight = height
Пример #2
0
	def initGlass(self, world, space, width, height):
		engine.deleteModel(self.node, "models/fragment/GlassFragment")
		maker = CardMaker("glassNode")
		maker.setFrame(-width / 2.0, width / 2.0, -height / 2.0, height / 2.0)
		maker.setUvRange(Point2(0.0, 0.0), Point2(width, height) * 0.04)
		self.node = hidden.attachNewNode(maker.generate())
		self.node.setTexture(loader.loadTexture("models/fragment/glass.png"))
		self.node.setTwoSided(True)
		self.node.setTransparency(TransparencyAttrib.MAlpha)
		self.node.setName(str(int(self.id)))
		self.node.hide(BitMask32.bit(4)) # Don't cast shadows
		self.radius = width / 2.0
		self.vradius = height / 2.0
		self.collisionNode = CollisionNode("cnode")
		point1 = Point3(-width / 2.0, 0, -height / 2.0)
		point2 = Point3(-width / 2.0, 0, height / 2.0)
		point3 = Point3(width / 2.0, 0, height / 2.0)
		point4 = Point3(width / 2.0, 0, -height / 2.0)
		self.collisionNode.addSolid(CollisionPolygon(point4, point3, point2, point1))
		self.collisionNode.addSolid(CollisionPolygon(point1, point2, point3, point4))
		self.collisionNodePath = self.node.attachNewNode(self.collisionNode)
		self.geometry = OdeBoxGeom(space, width, 0.5, height)
		self.geometry.setCollideBits(BitMask32(0x00000001))
		self.geometry.setCategoryBits(BitMask32(0x00000001))
		space.setSurfaceType(self.geometry, 1)
		self.shattered = False
		self.glassWidth = width
		self.glassHeight = height
Пример #3
0
 def clear(self, entityGroup):
     """Clears all resources associated with this ObjectEntity."""
     Entity.clear(self, entityGroup)
     try:
         self.geometry.destroy()
         self.body.destroy()
     except:
         pass    
     engine.deleteModel(self.node, self.filename)
Пример #4
0
 def clear(self, entityGroup):
     Actor.clear(self, entityGroup)
     engine.deleteModel(self.shieldNode, "models/shield/shield")
Пример #5
0
	def clear(self, entityGroup):
		Actor.clear(self, entityGroup)
		engine.deleteModel(self.shieldNode, "models/shield/shield")