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
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)
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()
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
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()
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
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)
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
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)
def getFadeInTrack(): fadeInTrack = LerpColorScaleInterval(self.nodePath, 0.5, colorScale=VBase4(1, 1, 1, 1), startColorScale=VBase4( 0, 0, 0, 0), blendType='easeOut') return fadeInTrack
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)
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()
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
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)) """
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()
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)
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()
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.
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 = {}
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
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()
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
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()
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
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)