config_camera_left=ConfigVariableString('key_cam_left', 'q|delete') config_camera_right=ConfigVariableString('key_cam_right', 'e|page_down') config_action1=ConfigVariableString('key_action1', 'mouse1|enter') config_action2=ConfigVariableString('key_action2', 'mouse3|space') config_zoomin=ConfigVariableString('key_zoomin', 'wheel_up|r') config_zoomout=ConfigVariableString('key_zoomout', 'wheel_down|f') #if(config_aa.getValue()>0): # loadPrcFileData('','multisamples '+str(config_aa.getValue())) wp = WindowProperties.getDefault() #wp = base.win.getProperties() wp.setFixedSize(False) wp.setCursorHidden(True) wp.setUndecorated(True) wp.setOrigin(-2,-2) wp.setTitle("Avolition - Demo v.1.0, www.indiedb.com/games/avolition/") if(config_fulscreen.getValue ()==1): wp.setFullscreen(True) wp.setSize(config_win_size.getWord(0),config_win_size.getWord(1)) #WindowProperties.setDefault(wp) #base.win.requestProperties(wp) from panda3d.core import * #import direct.directbase.DirectStart from direct.showbase.DirectObject import DirectObject from direct.filter.FilterManager import FilterManager from direct.showbase import Audio3DManager from direct.interval.IntervalGlobal import * from direct.gui.DirectGui import * from direct.actor.Actor import Actor import json
def __init__(self): ShowBase.__init__(self) resize_window = ConfigVariableBool('viewer-resize-window', '#t') if resize_window.getValue(): self.win_size = (800, 800) # Black background self.win.setClearColor((0.0, 0.0, 0.0, 1.0)) # Set up lights. self.lights = NodePath("lights") # Spotlight. Casts shadows. slight = Spotlight("slight") slight.setScene(self.render) slight.setShadowCaster(True, 2**11, 2**11) # Set shadow mask, so we can exclude objects from casting shadows self.shadow_mask = BitMask32.bit(2) slight.setCameraMask(self.shadow_mask) slight.setColor((1.2, 1.2, 1.2, 1.)) slight.getLens().setFov(45) slight.getLens().setNearFar(1, 100) slnp = self.lights.attachNewNode(slight) slnp.setPos((6, 8, 20)) slnp.lookAt(0, 0, 0) self.render.setLight(slnp) # Ambient light. alight = AmbientLight("alight") a = 0.75 alight.setColor((a, a, a, 1.0)) #alight.setColor((0.8, 0.8, 0.8, 1.0)) alnp = self.lights.attachNewNode(alight) self.render.setLight(alnp) self.lights.reparentTo(self.render) # Set auto shading for shadows use_shaders = ConfigVariableBool('viewer-use-shaders', '#t') if use_shaders.getValue(): self.render.setShaderAuto() # Set antialiasing on self.render.setAntialias(AntialiasAttrib.MAuto) # Camera self.camera_rot = self.render.attachNewNode("camera_rot") self.cameras = self.camera_rot.attachNewNode("cameras") self.cameras.setPos(14, 32, 9.) self.look_at = self.render.attachNewNode("look_at") self.look_at.setPos(Point3(2, 0, 1)) self.cameras.lookAt(self.look_at) self.camera.reparentTo(self.cameras) # Adjust the camera's lens lens = PerspectiveLens() self.camLens = lens self.camLens.setNearFar(0.01, 1000.0) setlens = ConfigVariableBool('viewer-set-cam-lens', '#t') if setlens: self.cam.node().setLens(self.camLens) # # Initialize / set variables self.sso = None self.ssos = [] self.cache = None self.scene = SSO("scene") self.scene.reparentTo(self.render) # Key callbacks. self.accept("shift-control-escape", self.exit) self.accept("escape", self.exit) self.accept("0", self.reset_sso) self.accept("arrow_left", self.prev) self.accept("arrow_right", self.next) self.accept("page_down", self.prev, [100]) self.accept("page_up", self.next, [100]) self.accept("f1", self.toggle_debug) self.accept("o", self.physics_once, extraArgs=[1. / 10]) self.accept("i", self.physics_once, extraArgs=[1. / 10000]) # Remove existing keyboard tasks. self.mandatory_events = ("window-event", "async_loader_0", "render-texture-targets-changed", "shift-control-escape") # Task list: name: (key, args) events = { "physics": ("p", ), "repel": ("t", ), "bump": ("f", ), "rotate": ("r", 20), "rotate90": ("h", ), "ss_task": ("s", ), "ssa_task": ("w", ), "bp": ("b", ) } # Add events for key, val in events.iteritems(): call = [key] + list(val[1:]) self.accept(val[0], self.toggle_task, call) # These are the key events that we will never ignore self.permanent_events = self.getAllAccepting() # These are the key events that we will never ignore self.permanent_tasks = [ task.getName() for task in self.taskMgr.getAllTasks() ] self.start_time = -1 self.old_elapsed = 0
def __init__(self): ShowBase.__init__(self) resize_window = ConfigVariableBool('viewer-resize-window', '#t') if resize_window.getValue(): self.win_size = (800, 800) # Black background self.win.setClearColor((1,1,1,1)) # Set up lights. ablight = AmbientLight("ambientlight") ablight.setColor(Vec4(0.5, 0.5, 0.5, 1)) ablightnode = self.render.attachNewNode(ablight) self.render.setLight(ablightnode) ptlight0 = PointLight("pointlight0") ptlight0.setColor(VBase4(1, 1, 1, 1)) ptlightnode0 = self.render.attachNewNode(ptlight0) ptlightnode0.setPos(500, 0, 500) base.render.setLight(ptlightnode0) ptlight1 = PointLight("pointlight1") ptlight1.setColor(VBase4(1, 1, 1, 1)) ptlightnode1 = base.render.attachNewNode(ptlight1) ptlightnode1.setPos(0, 500, 500) base.render.setLight(ptlightnode1) # Spotlight. Casts shadows. slight = Spotlight("slight") slight.setScene(self.render) slight.setShadowCaster(True, 2 ** 11, 2 ** 11) # Set shadow mask, so we can exclude objects from casting shadows self.shadow_mask = BitMask32.bit(2) slight.setCameraMask(self.shadow_mask) slight.setColor((1.2, 1.2, 1.2, 1.)) slight.getLens().setFov(45) slight.getLens().setNearFar(1, 100) slnp = self.lights.attachNewNode(slight) slnp.setPos((6, 8, 20)) slnp.lookAt(0, 0, 0) self.render.setLight(slnp) # Ambient light. alight = AmbientLight("alight") a = 0.75 alight.setColor((a, a, a, 1.0)) #alight.setColor((0.8, 0.8, 0.8, 1.0)) alnp = self.lights.attachNewNode(alight) self.render.setLight(alnp) self.lights.reparentTo(self.render) # Set auto shading for shadows use_shaders = ConfigVariableBool('viewer-use-shaders', '#t') if use_shaders.getValue(): self.render.setShaderAuto() # Set antialiasing on self.render.setAntialias(AntialiasAttrib.MAuto) # Camera self.camera_rot = self.render.attachNewNode("camera_rot") self.cameras = self.camera_rot.attachNewNode("cameras") self.cameras.setPos(14, 32, 9.) self.look_at = self.render.attachNewNode("look_at") self.look_at.setPos(Point3(2, 0, 1)) self.cameras.lookAt(self.look_at) self.camera.reparentTo(self.cameras) # Adjust the camera's lens lens = PerspectiveLens() self.camLens = lens self.camLens.setNearFar(0.01, 1000.0) setlens = ConfigVariableBool('viewer-set-cam-lens', '#t') if setlens: self.cam.node().setLens(self.camLens) # # Initialize / set variables self.sso = None self.ssos = [] self.cache = None self.scene = SSO("scene") self.scene.reparentTo(self.render) # Key callbacks. self.accept("shift-control-escape", self.exit) self.accept("escape", self.exit) self.accept("0", self.reset_sso) self.accept("arrow_left", self.prev) self.accept("arrow_right", self.next) self.accept("page_down", self.prev, [100]) self.accept("page_up", self.next, [100]) self.accept("f1", self.toggle_debug) self.accept("o", self.physics_once, extraArgs=[1. / 10]) self.accept("i", self.physics_once, extraArgs=[1. / 10000]) # Remove existing keyboard tasks. self.mandatory_events = ("window-event", "async_loader_0", "render-texture-targets-changed", "shift-control-escape") # Task list: name: (key, args) events = {"physics": ("p",), "repel": ("t",), "bump": ("f",), "rotate": ("r", 20), "rotate90": ("h",), "ss_task": ("s",), "ssa_task": ("w",), "bp": ("b",)} # Add events for key, val in events.iteritems(): call = [key] + list(val[1:]) self.accept(val[0], self.toggle_task, call) # These are the key events that we will never ignore self.permanent_events = self.getAllAccepting() # These are the key events that we will never ignore self.permanent_tasks = [task.getName() for task in self.taskMgr.getAllTasks()] self.start_time = -1 self.old_elapsed = 0
config_camera_left=ConfigVariableString('key_cam_left', 'q|delete') config_camera_right=ConfigVariableString('key_cam_right', 'e|page_down') config_action1=ConfigVariableString('key_action1', 'mouse1|enter') config_action2=ConfigVariableString('key_action2', 'mouse3|space') config_zoomin=ConfigVariableString('key_zoomin', 'wheel_up|r') config_zoomout=ConfigVariableString('key_zoomout', 'wheel_down|f') #if(config_aa.getValue()>0): # loadPrcFileData('','multisamples '+str(config_aa.getValue())) wp = WindowProperties.getDefault() #wp = base.win.getProperties() wp.setFixedSize(False) wp.setCursorHidden(True) wp.setUndecorated(True) wp.setOrigin(-2,-2) wp.setTitle("Avolition - Demo v.1.0, www.indiedb.com/games/avolition/") if(config_fulscreen.getValue ()==1): wp.setFullscreen(True) wp.setSize(config_win_size.getWord(0),config_win_size.getWord(1)) #WindowProperties.setDefault(wp) #base.win.requestProperties(wp) from panda3d.core import * #import direct.directbase.DirectStart from direct.showbase.DirectObject import DirectObject from direct.filter.FilterManager import FilterManager from direct.showbase import Audio3DManager from direct.interval.IntervalGlobal import * from direct.gui.DirectGui import * from direct.actor.Actor import Actor import json import os
from panda3d.core import loadPrcFile from panda3d.core import ConfigVariableBool from spanda3D.engine import Engine from sky.cube import SkyCube from spanda3D.light import Light from spanda3D.joystick import XboxControllerHandler if __name__ == "__main__": loadPrcFile("config.prc") mouse = ConfigVariableBool('keyboard_mouse') e = Engine(mouse.getValue()) SkyCube(e) Light(e) if mouse: print("Using keyboard-mouse controller") else: print("Using X-Box controller") XboxControllerHandler(e) e.run()