Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- #esential python libs
- import os, sys
- from exceptions import *
- #import esential panda libs
- from panda3d.core import *
- from direct.showbase.ShowBase import ShowBase
- from direct.stdpy.file import *
- from direct.filter.CommonFilters import CommonFilters
- #from panda3d.bullet import *
- import loaders
- import math
- class Starboard(ShowBase):
- def __init__(self, args):
- ShowBase.__init__(self)
- self.args = args
- self.isRunning = False
- render.setShaderAuto()
- render.setAntialias(AntialiasAttrib.MMultisample)
- #lights
- ambientLight = AmbientLight('ambientLight')
- ambientLight.setColor(Vec4(0.5, 0.5, 0.5, 1) * 0.5)
- ambientLightNP = render.attachNewNode(ambientLight)
- render.setLight(ambientLightNP)
- dlight = DirectionalLight('dlight')
- dlight.setColor(VBase4(0.8, 0.8, 0.5, 1) * 2)
- self.dlnp = render.attachNewNode(dlight)
- self.dlnp.setHpr(-90, 0, 0)
- render.setLight(self.dlnp)
- plight = PointLight('plight')
- plight.setColor(VBase4(0.2, 0.2, 0.2, 1) * 7)
- plight.setShadowCaster(True, 512, 512)
- self.plnp = render.attachNewNode(plight)
- self.plnp.setPos(0, 40, 10)
- render.setLight(self.plnp)
- self.skybox = loaders.loadSkybox('OmegaClusterSkybox')
- self.testobject = loaders.loadObject('Drone')
- self.testobject.reparentTo(self.render)
- self.testobject.setPos(0,0,0)
- plasma = Material()
- plasma.setAmbient(VBase4(0,0,1,1))
- plasma.setEmission(500)
- self.testobject.find('**/motor').setMaterial(plasma)
- self.camera.setPos(12,40,8)
- self.time = 0
- def update(task):
- dt = globalClock.getDt()
- self.time += dt
- fac = 10
- self.plnp.setPos(math.sin(self.time) * fac, self.testobject.getPos()[1]+math.cos(self.time) * fac, math.cos(self.time) * fac)
- cur = self.testobject.getPos()
- if self.isRunning:
- cur += LPoint3f(0,1,0) * dt * 3.5
- self.testobject.setPos(cur)
- self.skybox.setPos(camera.getPos())
- self.camera.lookAt(self.testobject)
- return task.cont
- self.taskMgr.add(update, 'update')
- def switchRun():
- self.isRunning = not self.isRunning
- self.accept('p', switchRun, [])
- filters = CommonFilters(self.win, self.cam)
- #filters.setAmbientOcclusion(numsamples=64, radius=0.01, amount=2.0, strength=0.01)
- filters.setBloom(size = "small", intensity = 1.2, mintrigger = 0.7, maxtrigger = 3)
- self.disableMouse()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement