コード例 #1
0
ファイル: CollectibleTypes.py プロジェクト: i-k/SpaceGrabem
    def __init__(self, game, color, value = 1, drain = 20):
        self.game = game
        self.VALUE = value
        self.DRAIN = drain
        
        #self.idnumber = id
        self.visualNode = NodePath('Visual node')
        self.visualNode.reparentTo(render)
        model = loader.loadModel('Ball2.egg')
        model.setScale(2.5)
        model.reparentTo(self.visualNode)

        plight = PointLight('plight')
        plight.setPoint( Point3(0, 0, 3) )
        plight.setColor( color )
        plight.setAttenuation( Vec3(0.05, 0.01, 0.01) )
        self.plightNodePath = model.attachNewNode(plight)
        model.setLight(self.plightNodePath)

        self.body = OdeBody(game.physicsWorld)
        self.mass = OdeMass()
        self.mass.setBox(10,1,1,1)
        self.body.setMass(self.mass)

        self.body.setGravityMode(True)

        #self.body.setGravityMode(False)
        #self.juttu = OdeUtil()
        
        self.collGeom = OdeSphereGeom( self.game.physicsSpace, 3.5)
        self.collGeom.setBody(self.body)
        self.collGeom.setCategoryBits( BitMask32(0xffffffff) )
        self.collGeom.setCollideBits( BitMask32(0xffffffff) )
コード例 #2
0
ファイル: ShipTypes.py プロジェクト: mjjpek/SpaceGrabem
    def __init__(self, game, color):
        #self.POWER = 100
        self.game = game
        
        self.thrust = False
        self.thrustLeft = False
        self.thrustRight = False
        self.thrustBack = False
        self.rotation = 0

        self.body = OdeBody(game.physicsWorld)
        self.mass = OdeMass()
        self.mass.setBox(10,1,1,1)
        self.body.setMass(self.mass)

        #odespheregeom(... , size of hitbox sphere)
        self.collGeom = OdeSphereGeom( self.game.physicsSpace, 5)
        self.collGeom.setBody(self.body)
        self.collGeom.setCategoryBits( BitMask32(0xffffffff) )
        self.collGeom.setCollideBits( BitMask32(0xffffffff) )
        
        self.visualNode = NodePath('Visual node')
        self.visualNode.reparentTo(render)
        model = loader.loadModel('lautanen2.egg')
        model.reparentTo(self.visualNode)
        
        plight = PointLight('plight')
        plight.setPoint( Point3(0.6, 0, 5) )
        plight.setColor( color )
        plight.setAttenuation( Vec3(0.5, 0.01, 0.01) )
        plightNodePath = model.attachNewNode(plight)
        model.setLight(plightNodePath)
コード例 #3
0
    def __init__(self, game, color):
        self.game = game
        
        
        self.visualNode = NodePath('Visual node')
        self.visualNode.reparentTo(render)
        model = loader.loadModel('testipalikka.egg')
        model.reparentTo(self.visualNode)

        plight = PointLight('plight')
        plight.setPoint( Point3(0.6, 0, 5) )
        plight.setColor( color )
        plight.setAttenuation( Vec3(0.5, 0.01, 0.01) )
        plightNodePath = model.attachNewNode(plight)
        model.setLight(plightNodePath)
        
        self.body = OdeBody(game.physicsWorld)
        self.mass = OdeMass()
        self.mass.setBox(10,1,1,1)
        self.body.setMass(self.mass)
        self.body.setGravityMode(False)
        #self.juttu = OdeUtil()
        
        self.collGeom = OdeSphereGeom( self.game.physicsSpace, 2)
        self.collGeom.setBody(self.body)
        self.collGeom.setCategoryBits( BitMask32(0xffffffff) )
        self.collGeom.setCollideBits( BitMask32(0xffffffff) )
コード例 #4
0
ファイル: Pylon.py プロジェクト: jujapa/SpaceGrabem
 def setColor(self, color):
     plight = PointLight('plight')
     plight.setPoint( Point3(0.6, 0, 5) )
     plight.setColor( color )
     plight.setAttenuation( Vec3(0.5, 0.01, 0.01) )
     plightNodePath = self.model.attachNewNode(plight)
     self.model.setLight(plightNodePath)
コード例 #5
0
ファイル: Base.py プロジェクト: i-k/SpaceGrabem
    def __init__(self, game):
        self.game = game
        
        #poista se fysiikka-avaruus ja vaan tee se alue... justiinsa
        self.collGeom = OdeBoxGeom( 24,8,2 )

        
        #self.collGeom.setBody(self.body)
        self.collGeom.setCategoryBits( BitMask32(1) )
        self.collGeom.setCollideBits( BitMask32(1) )
        

#        self.collGeomOuter = OdeBoxGeom( self.game.physicsSpace, 28,6,2)
#        #self.collGeom.setBody(self.body)
#        self.collGeomOuter.setCategoryBits( BitMask32(1) )
#        self.collGeomOuter.setCollideBits( BitMask32(1) )
        
        self.visualNode = NodePath('Visual node')
        self.visualNode.reparentTo(render)
        model = loader.loadModel('Base.egg')
        model.reparentTo(self.visualNode)
        
        plight = PointLight('baselight')
        plight.setPoint( Point3(0, 0, 12) )
        plight.setColor( Vec4(1,1,1,1) )
        plight.setAttenuation( Vec3(0.1, 0.1, 0.005) )
        self.visualNode.setLight(model.attachNewNode(plight))
コード例 #6
0
	def addPointLight(self,	 pos):
		k = 12
		light = PointLight("light-point")
		light.setColor(VBase4(k, k, k, 1))
		light.setAttenuation(Point3(0.2, 0.1, 0.01))
		node = render.attachNewNode(light)
		node.setPos(*pos)
		render.setLight(node)
コード例 #7
0
ファイル: ShipTypes.py プロジェクト: jujapa/SpaceGrabem
    def __init__(self, game, color):

        self.POWER = 200
        self.game = game
        self.SHIP_TYPE = "RAKETTI"
        self.Ball_offset = 10.0
     #   self.hasBall = False
        self.thrust = False
        self.thrustLeft = False
        self.thrustRight = False
        self.thrustBack = False
        self.rotation = 0

        self.body = OdeBody(game.physicsWorld)
        self.mass = OdeMass()
        self.mass.setBox(10,1,1,1)
        self.body.setMass(self.mass)
        #self.body.setGravityMode(False)

        #odespheregeom(... , size of hitbox sphere)
        self.collGeom = OdeSphereGeom( self.game.physicsSpace, 3)
        self.collGeom.setBody(self.body)
        self.collGeom.setCategoryBits( BitMask32(0xffffffff) )
        self.collGeom.setCollideBits( BitMask32(0xffffffff) )
        
        self.visualNode = NodePath('Visual node')
        self.visualNode.reparentTo(render)
        model = loader.loadModel('spaceship.egg')
        model.setH(180)
        model.setY(15)
        model.reparentTo(self.visualNode)
        self.visualNode.setScale(0.4)
        plight = PointLight('plight')
        plight.setPoint( Point3(0.6, 0, 5) )
        plight.setColor( color )
        plight.setAttenuation( Vec3(0.5, 0.01, 0.01) )
        plightNodePath = model.attachNewNode(plight)
        model.setLight(plightNodePath)
コード例 #8
0
ファイル: light.py プロジェクト: stelic/limitload
class PointOverbright (object):

    _count = 0

    def __init__ (self, parent, color, radius, halfat=None,
                  subnode=None, pos=Point3(), name=None):

        self.parent = parent

        if halfat is None:
            halfat = 0.5

        if name is None:
            name = "poverbright%d" % PointOverbright._count
        self.name = name

        self._pntlt = PointLight(self.name)
        pnode = subnode if subnode is not None else self.parent.node
        self.node = pnode.attachNewNode(self._pntlt)
        self.node.setPos(pos)

        self.update(color, radius, halfat, pos)

        self.alive = True
        PointOverbright._count += 1
        base.taskMgr.add(self._loop, "poverbright-loop")


    def destroy (self):

        if not self.alive:
            return
        self.alive = False
        self.node.removeNode()


    def update (self, color=None, radius=None, halfat=None, pos=None):

        if color is not None:
            self._pntlt.setColor(color)
            self.color = color
            self._colamp = Vec3(color[0], color[1], color[2]).length()
        if radius is not None or halfat is not None:
            if radius is None:
                radius = self.radius
            if halfat is None:
                halfat = self.halfat
            assert 0.0 < halfat < 1.0
            radpow = log(0.5) / log(halfat)
            self._pntlt.setAttenuation(Vec3(radius, radpow, 0.0))
            self.radius = radius
            self.halfat = halfat
            self._radpow = radpow
        if pos is not None:
            self.node.setPos(pos)


    def strength (self, dist):

        if self._colamp > 0.0:
            att = 1.0
            if dist > 0.0:
                att -= pow(min(dist / self.radius, 1.0), self._radpow)
            return self._colamp * att
        else:
            return 0.0


    def _loop (self, task):

        if not self.alive:
            return task.done
        if not self.parent.alive:
            self.destroy()
            return task.done
        return task.cont