Ejemplo n.º 1
0
 def unFreeze(self):
     if not self.isFrozen:
         return 0
     self.clearFreezeTracks()
     self.avatar.animFSM.request('Happy')
     self.iceCube.wrtReparentTo(render)
     self.freezeDnTrack = Sequence(
         Parallel(
             SoundInterval(self.iceCubeBreak, node=self.iceCube),
             LerpColorScaleInterval(
                 self.iceCube,
                 duration=0.5,
                 colorScale=VBase4(0.76, 0.76, 1.0, 0.0),
                 startColorScale=self.iceCube.getColorScale(),
                 blendType='easeInOut'),
             LerpColorScaleInterval(self.avatar.getGeomNode(),
                                    duration=0.5,
                                    colorScale=VBase4(1.0, 1.0, 1.0, 1.0),
                                    startColorScale=base.localAvatar.
                                    getGeomNode().getColorScale(),
                                    blendType='easeOut')),
         Func(self.iceCube.reparentTo, self.avatar),
         Func(self.iceCube.setPosHpr, 0, 0, 0, 0, 0, 0))
     self.freezeDnTrack.start()
     self.isFrozen = False
     return 1
    def load(self):
        self.setMinigameMusic(DistributedDodgeballGame.GameSong)
        self.setDescription(DistributedDodgeballGame.GameDesc)
        self.setWinnerPrize(200)
        self.setLoserPrize(0)
        self.createWorld()

        self.blueScoreLbl = self.getWinterDodgeballScoreText(VBase4(
            0, 0, 1, 1))
        self.blueScoreLbl.reparentTo(base.a2dTopLeft)
        self.blueScoreLbl['align'] = TextNode.ALeft
        self.blueScoreLbl.setText('Blue: 0')
        self.blueScoreLbl.setZ(-0.17)
        self.blueScoreLbl.setX(0.05)
        self.blueScoreLbl.hide()

        self.redScoreLbl = self.getWinterDodgeballScoreText(VBase4(1, 0, 0, 1))
        self.redScoreLbl.reparentTo(base.a2dTopLeft)
        self.redScoreLbl['align'] = TextNode.ALeft
        self.redScoreLbl.setText('Red: 0')
        self.redScoreLbl.setZ(-0.35)
        self.redScoreLbl.setX(0.05)
        self.redScoreLbl.hide()

        trans = DistributedDodgeballGame.InitCamTrans
        camera.setPos(trans[0])
        camera.setHpr(trans[1])

        DistributedToonFPSGame.load(self)
    def setHealth(self, health):
        if health > self.health:
            flashColor = VBase4(0, 1, 0, 1)
        else:
            if health < self.health:
                flashColor = VBase4(1, 0, 0, 1)
        DistributedAvatar.setHealth(self, health)

        def doBossFlash():
            if not self.isEmpty():
                LerpColorScaleInterval(self, 0.2, flashColor).start()

        def clearBossFlash():
            if not self.isEmpty():
                self.clearColorScale()

        if self.isDead():
            self.interruptAttack()
        if self.getLevel() > 12:
            if self.hpFlash:
                self.hpFlash.finish()
                self.hpFlash = None
            self.hpFlash = Sequence(Func(doBossFlash), Wait(0.2), Func(clearBossFlash))
            self.hpFlash.start()
        self.updateHealthBar(health)
        return
Ejemplo n.º 4
0
    def __updateKeyPressRateTask(self, task):
        if self.state not in 'Controlled':
            return Task.done
        for i in xrange(len(self.keyTTL)):
            self.keyTTL[i] -= 0.1

        for i in xrange(len(self.keyTTL)):
            if self.keyTTL[i] <= 0:
                a = self.keyTTL[0:i]
                del self.keyTTL
                self.keyTTL = a
                break

        self.keyRate = len(self.keyTTL)
        keyRateDiff = self.keyRate - self.BASELINE_KEY_RATE
        diffPower = keyRateDiff / 300.0
        if self.power < 1 and diffPower > 0:
            diffPower = diffPower * math.pow(1 - self.power, 1.25)
        newPower = self.power + diffPower
        if newPower > 1:
            newPower = 1
        elif newPower < 0:
            newPower = 0
        self.notify.debug('diffPower=%.2f keyRate = %d, newPower=%.2f' %
                          (diffPower, self.keyRate, newPower))
        self.power = newPower
        self.powerBar['value'] = newPower
        if self.power < self.YELLOW_POWER_THRESHOLD:
            self.powerBar['barColor'] = VBase4(0.75, 0.75, 1.0, 0.8)
        elif self.power < self.RED_POWER_THRESHOLD:
            self.powerBar['barColor'] = VBase4(1.0, 1.0, 0.0, 0.8)
        else:
            self.powerBar['barColor'] = VBase4(1.0, 0.0, 0.0, 0.8)
        self.__spawnUpdateKeyPressRateTask()
        return Task.done
    def setHealth(self, health):
        if health > self.health:
            # We got an hp boost. Flash green.
            flashColor = VBase4(0, 1, 0, 1)
        elif health < self.health:
            # We got an hp loss. Flash red.
            flashColor = VBase4(1, 0, 0, 1)
        DistributedAvatar.setHealth(self, health)

        def doBossFlash():
            if not self.isEmpty():
                LerpColorScaleInterval(self, 0.2, flashColor).start()

        def clearBossFlash():
            if not self.isEmpty():
                self.clearColorScale()

        if self.isDead():
            self.setChaseTarget(0)
            base.taskMgr.remove(self.uniqueName('monitorLocalAvDistance'))
            if self.isInRange:
                messenger.send(PCTMM.getCogOutOfRangeEvent())
                self.isInRange = False
            self.interruptAttack()

        if self.getLevel() > 12:
            if self.hpFlash:
                self.hpFlash.finish()
                self.hpFlash = None
            self.hpFlash = Sequence(Func(doBossFlash), Wait(0.2),
                                    Func(clearBossFlash))
            self.hpFlash.start()
        self.updateHealthBar(health)
Ejemplo n.º 6
0
    def create_device_menu(self):
        self.current_panel = None
        self.buttons = {}
        self.devices_frame = DirectScrolledFrame(
            frameSize=VBase4(
                0,
                base.a2dLeft*-0.75,
                base.a2dBottom - base.a2dTop,
                0,
            ),
            frameColor=VBase4(0, 0, 0.25, 1.0),
            canvasSize=VBase4(
                0,
                base.a2dLeft*-0.75,
                0,
                0,
            ),
            scrollBarWidth=0.08,
            manageScrollBars=True,
            autoHideScrollBars=True,
            pos=(base.a2dLeft, 0, base.a2dTop),
            parent=base.aspect2d,
        )

        self.devices_frame.setCanvasSize()
Ejemplo n.º 7
0
 def add_button(offset, button_name):
     button_width = canvas_width / 2
     label = DirectLabel(
         text=button_name,
         **left_aligned_small_text,
         pos=(0.05, 0, offset),
         parent=panel_canvas,
     )
     button = DirectFrame(
         frameSize=VBase4(
             0,
             button_width,
             -0.1,
             0,
         ),
         text="",
         text_align=TextNode.ACenter,
         text_scale=0.05,
         text_fg=VBase4(0,0,0,1),
         text_pos=(button_width / 2, -0.06),
         frameColor=VBase4(0.3, 0.3, 0.3, 1),
         pos=(canvas_width - button_width, 0, offset),
         parent=panel_canvas,
     )
     return button
Ejemplo n.º 8
0
 def add_vibration(offset, axis_name, index):
     slider_width = canvas_width / 2
     label = DirectLabel(
         text=axis_name,
         **left_aligned_small_text,
         pos=(0.05, 0, offset),
         parent=panel_canvas,
     )
     slider = DirectSlider(
         value=0.0,
         range=(0.0, 1.0),
         command=self.update_vibration,
         frameSize=VBase4(
             0,
             slider_width,
             -0.1,
             0,
         ),
         thumb_frameSize=VBase4(
             0.0,
             0.04,
             -0.04,
             0.04),
         frameColor=VBase4(0.3, 0.3, 0.3, 1),
         pos=(canvas_width - slider_width, 0, offset),
         parent=panel_canvas,
     )
     return slider
	def move(self, dir):
		global MOVE_SPEED
		
		self.stop()
		
		if((self.getSpeed().getY() <= MAX_VEL_XY) and (self.getSpeed().getX() <= MAX_VEL_XY)):
			xFactor = sin(self.getRotation() * DEG_TO_RAD)
			yFactor = cos(self.getRotation() * DEG_TO_RAD)
			self.setFactor(1, 1, 1)
			if(dir):
				self.applyForce(Vec3((-MOVE_SPEED * globalClock.getDt()) * xFactor, (MOVE_SPEED * globalClock.getDt()) * yFactor, 0))
			else:
				self.applyForce(Vec3((MOVE_SPEED * globalClock.getDt()) * xFactor / 2, (-MOVE_SPEED * globalClock.getDt()) * yFactor / 2, 0))
		
		fr = VBase4(0, 0, 0, 0)
		self.FPK.lookup(fr, (self.playerNP.getX() + self.FX / 2) / self.FX, (self.playerNP.getY() + self.FY / 2) / self.FY)
		
		ice = VBase4(0, 0, 0, 0)
		self.IPK.lookup(ice, (self.playerNP.getX() + self.IX / 2) / self.IX, (self.playerNP.getY() + self.IY / 2) / self.IY)
		
		snow = VBase4(0, 0, 0, 0)
		self.SPK.lookup(snow, (self.playerNP.getX() + self.SX / 2) / self.SX, (self.playerNP.getY() + self.SY / 2) / self.SY)
		
		# Here is where you would use CALC_COF(color.getX()) to set the ground friction
		self.fric = self.CALC_COF(fr.getX())
		self.ic = ice.getX()
		self.sc = snow.getX()
		self.updateTerrain()
Ejemplo n.º 10
0
 def add_axis(offset, axis_name):
     slider_width = canvas_width / 2
     label = DirectLabel(
         text=axis_name,
         **left_aligned_small_text,
         pos=(0.05, 0, offset),
         parent=panel_canvas,
     )
     slider = DirectSlider(
         value=0.0,
         range=(-1.0, 1.0),
         state=DGG.DISABLED,
         frameSize=VBase4(
             0,
             slider_width,
             -0.1,
             0,
         ),
         thumb_frameSize=VBase4(
             0.0,
             0.04,
             -0.04,
             0.04),
         frameColor=VBase4(0.3, 0.3, 0.3, 1),
         pos=(canvas_width - slider_width, 0, offset),
         parent=panel_canvas,
     )
     return slider
Ejemplo n.º 11
0
    def load_scene(self):
        self.scene_model = self.loader.loadModel("models/scene.egg")
        self.scene_model.reparentTo(self.render)

        self.alight = AmbientLight('alight')
        self.alight.setColor(VBase4(0.1, 0.1, 0.1, 1))
        self.alnp = self.render.attachNewNode(self.alight)
        self.render.setLight(self.alnp)

        self.dlight = DirectionalLight('dlight')
        self.dlight.setColor(VBase4(0.5, 0.5, 0.5, 0.5))
        self.dlnp = self.render.attachNewNode(self.dlight)
        self.dlnp.setHpr(0, -60, 0)
        self.render.setLight(self.dlnp)

        self.plights = []
        for position in [
            [0, 0, 20],
            # [10, 10, 20],
            # [-10, 10, 20],
            # [-10, -10, 20],
            [10, -10, 20],
        ]:
            plight = PointLight('plight_{}'.format(position))
            plight.setColor(VBase4(0.4, 0.4, 0.4, 1))
            plnp = self.render.attachNewNode(plight)
            plnp.setPos(*position)
            self.render.setLight(plnp)
            self.plights.append(plight)

        # self.camera.setPos(0, -20, 3)
        self.trackball.node().setPos(0, 20, -3)
Ejemplo n.º 12
0
class Dept(DirectObject):

    depts = {
        'sales': 'Sellbot',
        'money': 'Cashbot',
        'legal': 'Lawbot',
        'corp': 'Bossbot'
    }

    handColors = {
        'sales': VBase4(0.95, 0.75, 0.95, 1.0),
        'money': VBase4(0.65, 0.95, 0.85, 1.0),
        'legal': VBase4(0.75, 0.75, 0.95, 1.0),
        'corp': VBase4(0.95, 0.75, 0.75, 1)
    }

    def __init__(self, dept):
        self.dept = dept

    def getHandColor(self):
        return self.handColors[self.dept]

    def getGameDept(self):
        return self.depts[self.dept]

    def getDept(self):
        return self.dept

    def getDepts(self):
        return self.depts
Ejemplo n.º 13
0
def updateLight(task):
    base.camera.setHpr(task.time / 50.0 * 360, 0, 0)

    #base.camera.setP(0)
    base.camera.setPos(size / 2, size / 2, 5)
    #base.camera.setPos(tileNode,2,task.time*4,5)
    base.camera.setP(8)

    #t.update(base.camera)

    h = task.time / 20.0 * 360 + 180

    dlnp.setHpr(0, h, 0)
    h = h + 90
    h = h % 360
    h = min(h, 360 - h)
    #h is now angle from straight up
    hv = h / 180.0
    hv = 1 - hv
    sunset = max(0, 1.0 - abs(hv - .5) * 8)
    sunset = min(1, sunset)
    if hv > .5: sunset = 1
    #sunset=sunset**.2
    sunset = VBase4(0.8, 0.5, 0.0, 1) * sunset
    sun = max(0, hv - .5) * 2 * 4
    sun = min(sun, 1)
    dColor = (VBase4(0.8, 0.7, 0.7, 1) * sun * 2 + sunset)
    dlight.setColor(dColor)
    aColor = VBase4(0.1, 0.3, 0.8, 1) * sun * 2.6 + VBase4(0.2, 0.2, 0.3,
                                                           1) * 2.0
    alight.setColor(aColor * (5 - dColor.length()) * (1.0 / 5))
    return Task.cont
    def __init__(self, parent, getEditorRootCanvas, elementDict,
                 selectedElement):
        height = DGH.getRealHeight(parent)
        self.collapsedElements = []

        self.parent = parent

        self.box = DirectBoxSizer(frameColor=(0.25, 0.25, 0.25, 1),
                                  autoUpdateFrameSize=False,
                                  orientation=DGG.VERTICAL)
        self.sizer = DirectAutoSizer(parent=parent,
                                     child=self.box,
                                     childUpdateSizeFunc=self.box.refresh)

        self.lblHeader = DirectLabel(
            text="Structure",
            text_scale=16,
            text_align=TextNode.ALeft,
            text_fg=(1, 1, 1, 1),
            frameColor=VBase4(0, 0, 0, 0),
        )
        self.box.addItem(self.lblHeader)

        color = (
            (0.8, 0.8, 0.8, 1),  # Normal
            (0.9, 0.9, 1, 1),  # Click
            (0.8, 0.8, 1, 1),  # Hover
            (0.5, 0.5, 0.5, 1))  # Disabled
        self.structureFrame = DirectScrolledFrame(
            # make the frame fit into our background frame
            frameSize=VBase4(
                self.parent["frameSize"][0], self.parent["frameSize"][1],
                self.parent["frameSize"][2] +
                DGH.getRealHeight(self.lblHeader),
                self.parent["frameSize"][3]),
            #canvasSize=VBase4(parent["frameSize"][0], parent["frameSize"][1]-20, height+30, 0),
            # set the frames color to transparent
            frameColor=VBase4(1, 1, 1, 1),
            scrollBarWidth=20,
            verticalScroll_scrollSize=20,
            verticalScroll_thumb_relief=DGG.FLAT,
            verticalScroll_incButton_relief=DGG.FLAT,
            verticalScroll_decButton_relief=DGG.FLAT,
            verticalScroll_thumb_frameColor=color,
            verticalScroll_incButton_frameColor=color,
            verticalScroll_decButton_frameColor=color,
            horizontalScroll_thumb_relief=DGG.FLAT,
            horizontalScroll_incButton_relief=DGG.FLAT,
            horizontalScroll_decButton_relief=DGG.FLAT,
            horizontalScroll_thumb_frameColor=color,
            horizontalScroll_incButton_frameColor=color,
            horizontalScroll_decButton_frameColor=color,
            state=DGG.NORMAL)
        self.box.addItem(self.structureFrame)
        self.structureFrame.bind(DGG.MWDOWN, self.scroll, [0.01])
        self.structureFrame.bind(DGG.MWUP, self.scroll, [-0.01])
        self.maxWidth = parent["frameSize"][1] - 20
        self.getEditorRootCanvas = getEditorRootCanvas
        self.refreshStructureTree(elementDict, selectedElement)
Ejemplo n.º 15
0
 def getFadeInTrack():
     fadeInTrack = LerpColorScaleInterval(self.nodePath,
                                          0.5,
                                          colorScale=VBase4(1, 1, 1, 1),
                                          startColorScale=VBase4(
                                              0, 0, 0, 0),
                                          blendType='easeOut')
     return fadeInTrack
Ejemplo n.º 16
0
 def enterFlyDown(self, ts=0):
     self.disableRay()
     self.enableShadowRay()
     if not self.propeller:
         self.generatePropeller()
     sfx = self.propellerSounds['in']
     base.playSfx(sfx, node=self)
     groundF = 28
     dur = self.getDuration('land')
     fr = self.getFrameRate('land')
     if fr:
         animTimeInAir = groundF / fr
     else:
         animTimeInAir = groundF
     impactLength = dur - animTimeInAir
     timeTillLanding = 6.5 - impactLength
     waitTime = timeTillLanding - animTimeInAir
     lastSpinFrame = 8
     propDur = self.propeller.getDuration('chan')
     fr = self.propeller.getFrameRate('chan')
     spinTime = lastSpinFrame / fr
     openTime = (lastSpinFrame + 1) / fr
     if hasattr(self, 'uniqueName'):
         name = self.uniqueName('enterFlyDown')
     else:
         name = 'enterFlyDown'
     animTrack = Sequence(Func(self.pose, 'land', 0), Wait(waitTime),
                          ActorInterval(self, 'land', duration=dur))
     propTrack = Parallel(
         SoundInterval(sfx, duration=waitTime + dur, node=self),
         Sequence(
             ActorInterval(self.propeller,
                           'chan',
                           constrainedLoop=1,
                           duration=waitTime + spinTime,
                           startTime=0.0,
                           endTime=spinTime),
             ActorInterval(self.propeller,
                           'chan',
                           duration=propDur - openTime,
                           startTime=openTime)))
     self.suitTrack = Parallel(animTrack,
                               propTrack,
                               name=self.taskName('flyDown'))
     if not self.hasSpawned:
         self.show()
         fadeInTrack = Sequence(
             Func(self.setTransparency, 1),
             self.colorScaleInterval(1,
                                     colorScale=VBase4(1, 1, 1, 1),
                                     startColorScale=VBase4(1, 1, 1, 0)),
             Func(self.clearColorScale), Func(self.clearTransparency))
         self.hasSpawned = True
         self.suitTrack.append(fadeInTrack)
     self.suitTrack.setDoneEvent(self.suitTrack.getName())
     self.acceptOnce(self.suitTrack.getDoneEvent(), self.exitFlyDown)
     self.suitTrack.delayDelete = DelayDelete.DelayDelete(self, name)
     self.suitTrack.start(ts)
Ejemplo n.º 17
0
 def hideText(self):
     if self.text:
         Sequence(
             LerpColorScaleInterval(self.text,
                                    .5,
                                    VBase4(1, 1, 1, 0),
                                    blendType='easeInOut'),
             LerpColorScaleInterval(self.roleText, .5, VBase4(1, 1, 1,
                                                              0))).start()
Ejemplo n.º 18
0
    def create_material_COLOR(self, materialname, color):
        if panda3d is None: raise ImportError("Cannot locate Panda3D")

        currblock = self.blocks[-1]
        assert materialname not in currblock.materials
        mat = Material()
        mat.setAmbient(VBase4(color[0], color[1], color[2], 1))
        mat.setDiffuse(VBase4(color[0], color[1], color[2], 1))
        currblock.materials[materialname] = mat
Ejemplo n.º 19
0
	def initLights(self):
		# Create some lighting

		#self.environ.ls()

		#print(self.environ.findAllMatches("**/Spot"))

		ambientLight = AmbientLight("ambientLight")
		ambientLight.setColor(Vec4(0.8, 0.8, 0.8, 0.65))

		"""
		directionalLight = DirectionalLight("directionalLight")
		directionalLight.setDirection(Vec3(-10, -10, 5))
		directionalLight.showFrustum()
		directionalLight.setColor(Vec4(1, 1, 1, 1))
		directionalLight.setSpecularColor(Vec4(1, 1, 1, 1))
		dirnp = render.attachNewNode(directionalLight)
		dirnp.setPos(10, 0, 6)
		"""

		plight1 = PointLight('plight1')
		plight1.setColor(VBase4(1, 1, 1, 1))
		plight1.showFrustum()
		#plight1.setShadowCaster(True)
		plnp1 = render.attachNewNode(plight1)
		plnp1.setPos(26.71, -33.2, 26)

		plight2 = PointLight('plight2')
		plight2.setColor(VBase4(1, 1, 1, 1))
		plight2.showFrustum()
		plnp2 = render.attachNewNode(plight2)
		plnp2.setPos(-25, 25, 25)

		slight = Spotlight('slight')
		slight.setColor(VBase4(1, 1, 1, 1))
		lens = PerspectiveLens()
		lens.setFilmSize(1, 1)  # Or whatever is appropriate for your scene
		slight.setLens(lens)
		slight.setShadowCaster(True, 512, 512)
		slight.showFrustum()
		slnp = render.attachNewNode(slight)
		slnp.setPos(0, 0, 100)

		slnp.lookAt(Vec3(0,0,0))

		render.setLight(slnp)
		render.setLight(plnp1)
		render.setLight(plnp2)
		#render.setLight(render.attachNewNode(ambientLight))

		#render.setLight(dirnp)

		render.setShaderAuto()

		#render.setLight(render.attachNewNode(directionalLight))

		"""
Ejemplo n.º 20
0
 def collide(self, collEntry):
     print("WERT: object has collided into another object")
     Sequence(
         Func(collEntry.getFromNodePath().getParent().setColor,
              VBase4(1, 0, 0, 1)), Wait(0.2),
         Func(collEntry.getFromNodePath().getParent().setColor,
              VBase4(0, 1, 0, 1)), Wait(0.2),
         Func(collEntry.getFromNodePath().getParent().setColor,
              VBase4(1, 1, 1, 1))).start()
Ejemplo n.º 21
0
 def __init__(self, base):
     self.base = base
     alight = AmbientLight("ambient-light")
     alight.setColor(VBase4(0.2, 0.2, 0.2, 1))
     alnp = base.render.attachNewNode(alight)
     base.render.setLight(alnp)
     dlight = DirectionalLight("direction-light")
     dlight.setColor(VBase4(0.8, 0.8, 0.5, 1))
     dlnp = base.render.attachNewNode(dlight)
     base.render.setLight(dlnp)
Ejemplo n.º 22
0
 def __init__(self, model, data, cellWidth):
     MazeBase.__init__(self, model, data, cellWidth)
     self._initWaterCoolers()
     self.elevatorPos = self.maze.find('**/elevator_loc').getPos(render)
     self.exitPos = self.maze.find('**/exit_loc').getPos(render)
     self.maze.flattenStrong()
     self._clearColor = VBase4(base.win.getClearColor())
     self._clearColor.setW(1.0)
     base.win.setClearColor(VBase4(0.0, 0.0, 0.0, 1.0))
     if 0 and base.config.GetBool('cogdomaze-dev', False):
         self._initCollisionVisuals()
Ejemplo n.º 23
0
class Debug:
    # XY indicator on stem
    x = VBase4(1, 0, 0, 1)
    y = VBase4(0, 1, 0, 1)
    xyz_at_top = True  # If False, indicators are at the stem bottom.
    # skeleton geometry
    stem = VBase4(1, 1, 1, 1)  # Central axis of the segment
    ring_segs = 10  # Must be set if either ring or bark are used.
    ring = VBase4(0.7, 0.7, 0.7,
                  1)  # Color of the horizontal ring around the segment's base
    bark = False  # Line art to mock up bark.
Ejemplo n.º 24
0
 def __init__(self):
     self.frameColors = [VBase4(0.153, 0.75, 0.255, 1.0),
                         VBase4(0.915, 0.165, 0.165, 1.0),
                         VBase4(0.13, 0.59, 0.97, 1.0),
                         VBase4(0.976, 0.816, 0.13, 1.0)]
     self.framePositions = [Point3(0.15, 0, -0.15),
                         Point3(0.43, 0, -0.15),
                         Point3(0.15, 0, -0.43),
                         Point3(0.43, 0, -0.43)]
     self.frameList = []
     self.doId2Frame = {}
Ejemplo n.º 25
0
    def setupLight(self):
        primeL = DirectionalLight("prime")
        primeL.setColor(VBase4(.9, .9, .9, 1))
        self.light = render.attachNewNode(primeL)
        self.light.setHpr(45, -60, 0)
        render.setLight(self.light)

        ambL = AmbientLight("amb")
        ambL.setColor(VBase4(.2, .2, .2, 1))
        self.ambLight = render.attachNewNode(ambL)
        render.setLight(self.ambLight)
        return
Ejemplo n.º 26
0
	def __init__(self):

		loadPrcFile("config/Config.prc")

		ShowBase.__init__(self)

		self.camera = self.makeCamera(self.win)

		#self.render.setAntialias(AntialiasAttrib.MMultisample)
		self.setBackgroundColor(0.0,0.0,0.0)

		#Mouse position text
		self.posText = OnscreenText(\
			style=1, fg=(1,1,1,1), pos=(0.8,-0.95), scale = .07)

		#self.toggleWireframe()
		self._setupKeyboardEvents()

		# Load and transform the panda actor.
		self.render.setTransparency(TransparencyAttrib.MAlpha)
		self.tile1 = Tile("tile1",0.0,0.0)
		node1 = self.render.attachNewNode(self.tile1)
		self.tile2 = Tile("tile2",0.064,0.032)
		node2 = self.render.attachNewNode(self.tile2)

		texture = self.loader.loadTexture('artwork/sample.png')
		#node.setTwoSided(True)
		ts = TextureStage('ts')
		#ts.setMode(TextureStage.MNormal)
		node1.setTexture(ts, texture, 1)
		node2.setTexture(ts, texture, 1)

		myMaterial = Material()
		myMaterial.setShininess(0.0) #Make this material shiny
		myMaterial.setAmbient(VBase4(0.0,0.0,0.0,1)) #Make this material blue
		node1.setMaterial(myMaterial)
		node2.setMaterial(myMaterial)

		self.camera.setPos(0, 0, 2)
		self.camera.setHpr(0, -95, 0)

		plight = PointLight('plight')
		plight.setColor(VBase4(0.8, 0.8, 0.2, 1))
		plnp = self.render.attachNewNode(plight)
		plnp.setPos(0.128, 0.064, -0.8)
		plight.setAttenuation(Point3(0.23, 0.23, 0.25))
		self.render.setLight(plnp)

		self.alight = self.render.attachNewNode(AmbientLight("Ambient"))
		self.alight.node().setColor(Vec4(0.1, 0.1, 0.1, 1))
		self.render.setLight(self.alight)

		self.render.setShaderAuto()
Ejemplo n.º 27
0
    def createMeterInterval(self, icon, meter, time):
        ivalDarkness = LerpScaleInterval(meter, time, scale=Vec3(1, 1, 1), startScale=Vec3(1, 0.001, 0.001))
        flashingTrack = Sequence()
        flashDuration = 10
        if time > flashDuration:
            flashingTrack.append(Wait(time - flashDuration))
            for i in range(10):
                flashingTrack.append(Parallel(LerpColorScaleInterval(icon, 0.5, VBase4(1, 0, 0, 1)), icon.scaleInterval(0.5, 1.25)))
                flashingTrack.append(Parallel(LerpColorScaleInterval(icon, 0.5, VBase4(1, 1, 1, 1)), icon.scaleInterval(0.5, 1)))

        retIval = Parallel(ivalDarkness, flashingTrack)
        return retIval
Ejemplo n.º 28
0
 def enterFlyAway(self, ts=0, doFadeOut=0):
     self.show()
     if not self.propeller:
         self.generatePropeller()
     sfx = self.propellerSounds['out']
     if hasattr(self, 'uniqueName'):
         name = self.uniqueName('enterFlyAway')
     else:
         name = 'enterFlyAway'
     dur = self.getDuration('land')
     actInt = ActorInterval(self,
                            'land',
                            loop=0,
                            startTime=dur,
                            endTime=0.0)
     lastSpinFrame = 8
     propDur = self.propeller.getDuration('chan')
     fr = self.propeller.getFrameRate('chan')
     spinTime = lastSpinFrame / fr
     openTime = (lastSpinFrame + 1) / fr
     propTrack = Parallel(
         SoundInterval(sfx, node=self),
         Sequence(
             Func(self.propeller.show),
             ActorInterval(self.propeller,
                           'chan',
                           endTime=openTime,
                           startTime=propDur),
             ActorInterval(self.propeller,
                           'chan',
                           constrainedLoop=1,
                           duration=propDur - openTime,
                           startTime=spinTime,
                           endTime=0.0)))
     self.suitTrack = Parallel(actInt,
                               propTrack,
                               name=self.taskName('trackName'))
     if doFadeOut:
         fadeOut = Sequence(
             Wait(4.0), Func(self.setTransparency, 1),
             self.colorScaleInterval(1,
                                     colorScale=VBase4(1, 1, 1, 0),
                                     startColorScale=VBase4(1, 1, 1, 1)),
             Func(self.clearColorScale), Func(self.clearTransparency),
             Func(self.reparentTo, hidden))
         self.suitTrack.append(fadeOut)
     self.suitTrack.setDoneEvent(self.suitTrack.getName())
     self.acceptOnce(self.suitTrack.getDoneEvent(), self.exitFlyAway)
     self.suitTrack.delayDelete = DelayDelete.DelayDelete(self, name)
     self.suitTrack.start(ts)
     self.disableRay()
     self.enableShadowRay()
Ejemplo n.º 29
0
    def makeGround(self, parent):
        ground = self.base.loader.loadModel("cube")
        ground.setScale(20, 5, .2)
        ground.setPos(0, 0, -.2)
        ground.setColor(VBase4(.33, .42, .55,
                               1))  #*colorsys.hsv_to_rgb(.6, .4, .55))
        ground.reparentTo(parent)

        m = Material("gnd")
        m.setDiffuse(VBase4(1, 1, 1, 1))
        #ground.setMaterial(m)

        return ground
Ejemplo n.º 30
0
 def __init__(self):
     self.seaLevel = 0
     self.center = 0
     self.anchor = None
     self.overallSpeed = 0
     self.uvSpeed = Vec2(0, 0)
     self.thresfold = 0
     self.radius = 0
     self.uvScale = VBase2(0, 0)
     self.waveEnabled = 0
     self.high = VBase4(0, 0, 0, 0)
     self.mid = VBase4(0, 0, 0, 0)
     self.low = VBase4(0, 0, 0, 0)