Exemple #1
0
 def setupControls(self, avatarRadius = 1.4, floorOffset = OTPGlobals.FloorOffset, reach = 4.0, wallBitmask = OTPGlobals.WallBitmask, floorBitmask = OTPGlobals.FloorBitmask, ghostBitmask = OTPGlobals.GhostBitmask):
     walkControls = GravityWalker(legacyLifter=self.wantLegacyLifter())
     walkControls.setWallBitMask(wallBitmask)
     walkControls.setFloorBitMask(floorBitmask)
     walkControls.initializeCollisions(self.cTrav, self, avatarRadius, floorOffset, reach)
     walkControls.setAirborneHeightFunc(self.getAirborneHeight)
     self.controlManager.add(walkControls, 'walk')
     self.physControls = walkControls
     twoDControls = TwoDWalker()
     twoDControls.setWallBitMask(wallBitmask)
     twoDControls.setFloorBitMask(floorBitmask)
     twoDControls.initializeCollisions(self.cTrav, self, avatarRadius, floorOffset, reach)
     twoDControls.setAirborneHeightFunc(self.getAirborneHeight)
     self.controlManager.add(twoDControls, 'twoD')
     swimControls = SwimWalker()
     swimControls.setWallBitMask(wallBitmask)
     swimControls.setFloorBitMask(floorBitmask)
     swimControls.initializeCollisions(self.cTrav, self, avatarRadius, floorOffset, reach)
     swimControls.setAirborneHeightFunc(self.getAirborneHeight)
     self.controlManager.add(swimControls, 'swim')
     ghostControls = GhostWalker()
     ghostControls.setWallBitMask(ghostBitmask)
     ghostControls.setFloorBitMask(floorBitmask)
     ghostControls.initializeCollisions(self.cTrav, self, avatarRadius, floorOffset, reach)
     ghostControls.setAirborneHeightFunc(self.getAirborneHeight)
     self.controlManager.add(ghostControls, 'ghost')
     observerControls = ObserverWalker()
     observerControls.setWallBitMask(ghostBitmask)
     observerControls.setFloorBitMask(floorBitmask)
     observerControls.initializeCollisions(self.cTrav, self, avatarRadius, floorOffset, reach)
     observerControls.setAirborneHeightFunc(self.getAirborneHeight)
     self.controlManager.add(observerControls, 'observer')
     self.controlManager.use('walk', self)
     self.controlManager.disable()
Exemple #2
0
    def moveAvatar(self, task):
        wallBitmask = BitMask32(1)
        floorBitmask = BitMask32(2)
        base.cTrav = CollisionTraverser()
        def getAirborneHeight():
            return offset + 0.025000000000000001
        walkControls = GravityWalker(legacyLifter=True)
        walkControls.setWallBitMask(wallBitmask)
        walkControls.setFloorBitMask(floorBitmask)
        walkControls.setWalkSpeed(self.ToonForwardSpeed, self.ToonJumpForce, self.ToonReverseSpeed, self.ToonRotateSpeed)
        walkControls.initializeCollisions(base.cTrav, self.model, floorOffset=0.025, reach=4.0)
        walkControls.setAirborneHeightFunc(getAirborneHeight)
        walkControls.enableAvatarControls()
        self.model.physControls = walkControls
        

        dt = globalClock.getDt()
        
        if self.moveKeys['arrow_left']:
            base.w.av.setH(base.w.av, dt * self.ToonRotateSpeed)
        elif self.moveKeys['arrow_right']:
            base.w.av.setH(base.w.av, -dt * self.ToonRotateSpeed)

        if self.moveKeys['arrow_up']:
            base.w.av.setY(base.w.av, dt * self.ToonForwardSpeed)
        elif self.moveKeys['arrow_down']:
            base.w.av.setY(base.w.av, -dt * self.ToonReverseSpeed)

        return task.cont
	def initMovement(self):
		self.walkControls = GravityWalker(legacyLifter=True)
		self.walkControls.setWallBitMask(CIGlobals.WallBitmask)
		self.walkControls.setFloorBitMask(CIGlobals.FloorBitmask)
		self.walkControls.setWalkSpeed(30, 30, 15, 75)
		self.walkControls.initializeCollisions(base.cTrav, base.avatar, floorOffset=0.025, reach=4.0)
		self.walkControls.setAirborneHeightFunc(self.getAirborneHeight)
		camera.reparent_to(base.avatar)
		self.smart_cam.start_smartcamera()
Exemple #4
0
    def loadGame(self):
        # Setting up key maps and the instruction set into the scene...
        LandwalkerGlobals.setKeys()
        LandwalkerGlobals.setInstructions()

        # Loads our world.
        scene = self.loadWorld()

        # Makes our local avatar.
        localAvatar = actor.makeActor()
        base.localAvatar = localAvatar
        base.localAvatar.reparentTo(render)

        # Load our buttons.
        self.LoadButtons()

        # Load our shaders.
        #fog = loadFog()
        #print(fogStats(fog))
        EffectsManager.loadShaders()
        #FogDensity = EffectsManager.loadFog(1)

        # Floater Object (For camera)
        floater = NodePath(PandaNode("floater"))
        floater.reparentTo(localAvatar)
        floater.setY(-10)
        floater.setZ(8.5)
        floater.setHpr(0, -10, 0)

        # Set Camera
        camera.reparentTo(floater)

        wallBitmask = BitMask32(1)
        floorBitmask = BitMask32(2)
        base.cTrav = CollisionTraverser()

        # Walk controls
        walkControls = GravityWalker(legacyLifter=True)
        walkControls.setWallBitMask(wallBitmask)
        walkControls.setFloorBitMask(floorBitmask)
        walkControls.setWalkSpeed(16.0, 24.0, 8.0, 80.0)
        walkControls.initializeCollisions(base.cTrav,
                                          localAvatar,
                                          floorOffset=0.025,
                                          reach=4.0)
        walkControls.setAirborneHeightFunc(
            LandwalkerAvatarControls.getAirborneHeight())
        walkControls.enableAvatarControls()
        # controlManager.add(walkControls, 'walk')
        localAvatar.physControls = walkControls
        localAvatar.physControls.placeOnFloor()

        # Some debug stuff, should be moved later once I can toggle stuff from different files./
        self.onScreenDebug.enabled = True
        base.setFrameRateMeter(True)
        base.taskMgr.add(LandwalkerAvatarControls.move, "moveTask")
        base.taskMgr.add(self.updateOnScreenDebug, 'UpdateOSD')
Exemple #5
0
 def generateGravity(self, NodePath):
     base.cTrav = CollisionTraverser()
     GravityController = GravityWalker(legacyLifter=True)
     GravityController.setWallBitMask(BitmaskGlobals.WallBitmask)
     GravityController.setFloorBitMask(BitmaskGlobals.FloorBitmask)
     GravityController.initializeCollisions(base.cTrav,
                                            NodePath,
                                            floorOffset=0.025,
                                            reach=4.0)
Exemple #6
0
 def setupControls(self):
     self.walkControls = GravityWalker(legacyLifter=False)
     self.walkControls.setWallBitMask(CIGlobals.WallBitmask)
     self.walkControls.setFloorBitMask(CIGlobals.FloorBitmask)
     self.walkControls.setWalkSpeed(CIGlobals.ToonForwardSpeed,
                                    CIGlobals.ToonJumpForce,
                                    CIGlobals.ToonReverseSpeed,
                                    CIGlobals.ToonRotateSpeed)
     self.walkControls.initializeCollisions(base.cTrav,
                                            self,
                                            floorOffset=0.025,
                                            reach=4.0)
     self.walkControls.setAirborneHeightFunc(self.getAirborneHeight)
Exemple #7
0
 def setupControls(self):
     self.walkControls = GravityWalker(legacyLifter=False)
     self.walkControls.setWallBitMask(CIGlobals.WallBitmask)
     self.walkControls.setFloorBitMask(CIGlobals.FloorBitmask)
     self.walkControls.setWalkSpeed(CIGlobals.ToonForwardSpeed,
                                    CIGlobals.ToonJumpForce,
                                    CIGlobals.ToonReverseSpeed,
                                    CIGlobals.ToonRotateSpeed)
     self.walkControls.initializeCollisions(base.cTrav,
                                            self,
                                            floorOffset=0.025,
                                            reach=4.0)
     self.walkControls.cEventSphereNodePath.node().setFromCollideMask(
         CIGlobals.WallBitmask | CIGlobals.WeaponBitmask
         | GunGameGlobals.HILL_BITMASK)
     self.walkControls.setAirborneHeightFunc(self.getAirborneHeight)
Exemple #8
0
 def setupControls(self):
     walkControls = GravityWalker(legacyLifter=self.wantLegacyLifter())
     walkControls.setWallBitMask(WallBitmask)
     walkControls.setFloorBitMask(FloorBitmask)
     walkControls.initializeCollisions(
         self.cTrav, self, avatarRadius=AvatarDefaultRadius, floorOffset=FloorOffset, reach=4
     )
     walkControls.setAirborneHeightFunc(self.getAirborneHeight)
     self.physControls = walkControls
     self.controlManager.add(walkControls, 'walk')
     swimControls = SwimWalker()
     swimControls.setWallBitMask(WallBitmask)
     swimControls.setFloorBitMask(FloorBitmask)
     swimControls.initializeCollisions(
         self.cTrav, self, avatarRadius=AvatarDefaultRadius, floorOffset=FloorOffset, reach=4
     )
     swimControls.setAirborneHeightFunc(self.getAirborneHeight)
     self.controlManager.add(swimControls, 'swim')
     self.controlManager.use('walk', self)
     self.controlManager.disable()
Exemple #9
0
 def setupToon(self):
     self.localAvatar.setName('Toon')
     self.localAvatar.setPythonTag('Avatar', self)
     geom = self.localAvatar.getGeomNode()
     geom.getChild(0).setSx(0.730000019073)
     geom.getChild(0).setSz(0.730000019073)
     base.localAvatar = self.localAvatar
     wallBitmask = BitMask32(1)
     floorBitmask = BitMask32(2)
     base.cTrav = CollisionTraverser()
     walkControls = GravityWalker(legacyLifter=True)
     walkControls.setWallBitMask(wallBitmask)
     walkControls.setFloorBitMask(floorBitmask)
     walkControls.setWalkSpeed(8.0, 20.0, 4.0, 20.0)
     walkControls.initializeCollisions(base.cTrav, self.localAvatar, floorOffset=0.025, reach=4.0)
     walkControls.setAirborneHeightFunc(self.getAirborneHeight)
     walkControls.enableAvatarControls()
     self.walkControls = walkControls
     self.localAvatar.physControls = walkControls
     self.localAvatar.physControls.placeOnFloor()
     self.setupPhysics()
     Hud(self)
     self.setupCamera()
     render.getPythonTag('WorldCollisions').addToonCollision()
    def __init__(self, cr):
        DistributedToon.DistributedToon.__init__(self, cr)
        base.cTrav = CollisionTraverser()

        def getAirborneHeight():
            return offset + 0.025

        walkControls = GravityWalker(legacyLifter=True)
        walkControls.setWallBitMask(Globals.WallBitmask)
        walkControls.setFloorBitMask(Globals.FloorBitmask)
        walkControls.setWalkSpeed(16.0, 24.0, 8.0, 80.0)
        walkControls.initializeCollisions(base.cTrav,
                                          self.toonActor,
                                          floorOffset=0.025,
                                          reach=4.0)
        walkControls.setAirborneHeightFunc(getAirborneHeight)
        walkControls.enableAvatarControls()
        self.toonActor.physControls = walkControls

        def setWatchKey(key, input, keyMapName):
            def watchKey(active=True):
                if active == True:
                    inputState.set(input, True)
                    keyMap[keyMapName] = 1
                else:
                    inputState.set(input, False)
                    keyMap[keyMapName] = 0

            base.accept(key, watchKey, [True])
            base.accept(key + '-up', watchKey, [False])

        keyMap = {
            'left': 0,
            'right': 0,
            'forward': 0,
            'backward': 0,
            'control': 0
        }

        setWatchKey('arrow_up', 'forward', 'forward')
        setWatchKey('control-arrow_up', 'forward', 'forward')
        setWatchKey('alt-arrow_up', 'forward', 'forward')
        setWatchKey('shift-arrow_up', 'forward', 'forward')
        setWatchKey('arrow_down', 'reverse', 'backward')
        setWatchKey('control-arrow_down', 'reverse', 'backward')
        setWatchKey('alt-arrow_down', 'reverse', 'backward')
        setWatchKey('shift-arrow_down', 'reverse', 'backward')
        setWatchKey('arrow_left', 'turnLeft', 'left')
        setWatchKey('control-arrow_left', 'turnLeft', 'left')
        setWatchKey('alt-arrow_left', 'turnLeft', 'left')
        setWatchKey('shift-arrow_left', 'turnLeft', 'left')
        setWatchKey('arrow_right', 'turnRight', 'right')
        setWatchKey('control-arrow_right', 'turnRight', 'right')
        setWatchKey('alt-arrow_right', 'turnRight', 'right')
        setWatchKey('shift-arrow_right', 'turnRight', 'right')
        setWatchKey('control', 'jump', 'control')

        self.movingNeutral = False
        self.movingForward = False
        self.movingRotation = False
        self.movingBackward = False
        self.movingJumping = False

        def handleMovement(task):
            if keyMap['control'] == 1:
                if keyMap['forward'] or keyMap['backward'] or keyMap[
                        'left'] or keyMap['right']:
                    if self.movingJumping == False:
                        if self.toonActor.physControls.isAirborne:
                            self.setMovementAnimation('running-jump-idle')
                        else:
                            if keyMap['forward']:
                                if self.movingForward == False:
                                    self.setMovementAnimation('run')
                            elif keyMap['backward']:
                                if self.movingBackward == False:
                                    self.setMovementAnimation('walk',
                                                              playRate=-1.0)
                            elif keyMap['left'] or keyMap['right']:
                                if self.movingRotation == False:
                                    self.setMovementAnimation('walk')
                    else:
                        if not self.toonActor.physControls.isAirborne:
                            if keyMap['forward']:
                                if self.movingForward == False:
                                    self.setMovementAnimation('run')
                            elif keyMap['backward']:
                                if self.movingBackward == False:
                                    self.setMovementAnimation('walk',
                                                              playRate=-1.0)
                            elif keyMap['left'] or keyMap['right']:
                                if self.movingRotation == False:
                                    self.setMovementAnimation('walk')
                else:
                    if self.movingJumping == False:
                        if self.toonActor.physControls.isAirborne:
                            self.setMovementAnimation('jump-idle')
                        else:
                            if self.movingNeutral == False:
                                self.setMovementAnimation('neutral')
                    else:
                        if not self.toonActor.physControls.isAirborne:
                            if self.movingNeutral == False:
                                self.setMovementAnimation('neutral')
            elif keyMap['forward'] == 1:
                if self.movingForward == False:
                    if not self.toonActor.physControls.isAirborne:
                        self.setMovementAnimation('run')
            elif keyMap['backward'] == 1:
                if self.movingBackward == False:
                    if not self.toonActor.physControls.isAirborne:
                        self.setMovementAnimation('walk', playRate=-1.0)
            elif keyMap['left'] or keyMap['right']:
                if self.movingRotation == False:
                    if not self.toonActor.physControls.isAirborne:
                        self.setMovementAnimation('walk')
            else:
                if not self.toonActor.physControls.isAirborne:
                    if self.movingNeutral == False:
                        self.setMovementAnimation('neutral')
            return Task.cont

        base.taskMgr.add(handleMovement, 'controlManager')

        def collisionsOn():
            self.toonActor.physControls.setCollisionsActive(True)
            self.toonActor.physControls.isAirborne = True

        def collisionsOff():
            self.toonActor.physControls.setCollisionsActive(False)
            self.toonActor.physControls.isAirborne = True

        def toggleCollisions():
            if self.toonActor.physControls.getCollisionsActive():
                self.toonActor.physControls.setCollisionsActive(False)
                self.toonActor.physControls.isAirborne = True
            else:
                self.toonActor.physControls.setCollisionsActive(True)
                self.toonActor.physControls.isAirborne = True

        base.accept('f1', toggleCollisions)
        base.accept('f2', base.oobe)
Exemple #11
0
    def moveAvatar(self, task):

        wallBitmask = BitMask32(1)
        floorBitmask = BitMask32(2)
        base.cTrav = CollisionTraverser()

        def getAirborneHeight():
            return offset + 0.025000000000000001

        walkControls = GravityWalker(legacyLifter=True)
        walkControls.setWallBitMask(wallBitmask)
        walkControls.setFloorBitMask(floorBitmask)
        walkControls.setWalkSpeed(self.ToonForwardSpeed, self.ToonJumpForce,
                                  self.ToonReverseSpeed, self.ToonRotateSpeed)
        walkControls.initializeCollisions(base.cTrav,
                                          self.model,
                                          floorOffset=0.025,
                                          reach=4.0)
        walkControls.setAirborneHeightFunc(getAirborneHeight)
        walkControls.enableAvatarControls()
        self.model.physControls = walkControls

        def setWatchKey(key, input, keyMapName):
            def watchKey(active=True):
                if active == True:
                    inputState.set(input, True)
                    keyMap[keyMapName] = 1
                else:
                    inputState.set(input, False)
                    keyMap[keyMapName] = 0

            base.accept(key, watchKey, [True])
            base.accept(key + '-up', watchKey, [False])

        keyMap = {
            'left': 0,
            'right': 0,
            'forward': 0,
            'backward': 0,
            'control': 0
        }

        setWatchKey('arrow_up', 'forward', 'forward')
        setWatchKey('control-arrow_up', 'forward', 'forward')
        setWatchKey('alt-arrow_up', 'forward', 'forward')
        setWatchKey('shift-arrow_up', 'forward', 'forward')
        setWatchKey('arrow_down', 'reverse', 'backward')
        setWatchKey('control-arrow_down', 'reverse', 'backward')
        setWatchKey('alt-arrow_down', 'reverse', 'backward')
        setWatchKey('shift-arrow_down', 'reverse', 'backward')
        setWatchKey('arrow_left', 'turnLeft', 'left')
        setWatchKey('control-arrow_left', 'turnLeft', 'left')
        setWatchKey('alt-arrow_left', 'turnLeft', 'left')
        setWatchKey('shift-arrow_left', 'turnLeft', 'left')
        setWatchKey('arrow_right', 'turnRight', 'right')
        setWatchKey('control-arrow_right', 'turnRight', 'right')
        setWatchKey('alt-arrow_right', 'turnRight', 'right')
        setWatchKey('shift-arrow_right', 'turnRight', 'right')
        setWatchKey('control', 'jump', 'control')

        self.movingNeutral, movingForward = (False, False)
        self.movingRotation, movingBackward = (False, False)
        self.movingJumping = False

        def setMovementAnimation(loopName, playRate=1.0):
            if 'jump' in loopName:
                self.movingJumping = True
                self.movingForward = False
                self.movingNeutral = False
                self.movingRotation = False
                self.movingBackward = False
            elif loopName == 'run':
                self.movingJumping = False
                self.movingForward = True
                self.movingNeutral = False
                self.movingRotation = False
                self.movingBackward = False
            elif loopName == 'walk':
                self.movingJumping = False
                self.movingForward = False
                self.movingNeutral = False
                if playRate == -1.0:
                    self.movingBackward = True
                    self.movingRotation = False
                else:
                    self.movingBackward = False
                    self.movingRotation = True
            elif loopName == 'neutral':
                self.movingJumping = False
                self.movingForward = False
                self.movingNeutral = True
                self.movingRotation = False
                self.movingBackward = False
            else:
                self.movingJumping = False
                self.movingForward = False
                self.movingNeutral = False
                self.movingRotation = False
                self.movingBackward = False
            ActorInterval(self.model, loopName, playRate=playRate).loop()

        def handleMovement(task):
            global movingNeutral, movingForward
            global movingRotation, movingBackward, movingJumping
            if keyMap['control'] == 1:
                if keyMap['forward'] or keyMap['backward'] or keyMap[
                        'left'] or keyMap['right']:
                    if self.movingJumping == False:
                        if self.model.physControls.isAirborne:
                            setMovementAnimation('running-jump-idle')
                        else:
                            if keyMap['forward']:
                                if self.movingForward == False:
                                    setMovementAnimation('run')
                            elif keyMap['backward']:
                                if self.movingBackward == False:
                                    setMovementAnimation('walk', playRate=-1.0)
                            elif keyMap['left'] or keyMap['right']:
                                if self.movingRotation == False:
                                    setMovementAnimation('walk')
                    else:
                        if not self.model.physControls.isAirborne:
                            if keyMap['forward']:
                                if self.movingForward == False:
                                    setMovementAnimation('run')
                            elif keyMap['backward']:
                                if self.movingBackward == False:
                                    setMovementAnimation('walk', playRate=-1.0)
                            elif keyMap['left'] or keyMap['right']:
                                if self.movingRotation == False:
                                    setMovementAnimation('walk')
                else:
                    if self.movingJumping == False:
                        if self.model.physControls.isAirborne:
                            setMovementAnimation('jump-idle')
                        else:
                            if self.movingNeutral == False:
                                setMovementAnimation('neutral')
                    else:
                        if not self.model.physControls.isAirborne:
                            if self.movingNeutral == False:
                                setMovementAnimation('neutral')
            elif keyMap['forward'] == 1:
                if self.movingForward == False:
                    if not self.model.physControls.isAirborne:
                        setMovementAnimation('run')
            elif keyMap['backward'] == 1:
                if self.movingBackward == False:
                    if not self.model.physControls.isAirborne:
                        setMovementAnimation('walk', playRate=-1.0)
            elif keyMap['left'] or keyMap['right']:
                if self.movingRotation == False:
                    if not self.model.physControls.isAirborne:
                        setMovementAnimation('walk')
            else:
                if not self.model.physControls.isAirborne:
                    if self.movingNeutral == False:
                        setMovementAnimation('neutral')
            return Task.cont

        base.taskMgr.add(handleMovement, 'controlManager')

        dt = globalClock.getDt()
Exemple #12
0
geom.getChild(0).setSx(0.730000019073)
geom.getChild(0).setSz(0.730000019073)
offset = 3.2375

base.camera.reparentTo(mouseBody)
base.camera.setPos(0, -10.0 - offset, offset)
wallBitmask = BitMask32(1)
floorBitmask = BitMask32(2)
base.cTrav = CollisionTraverser()


def getAirborneHeight():
    return offset + 0.025000000000000001


walkControls = GravityWalker(legacyLifter=True)
walkControls.setWallBitMask(wallBitmask)
walkControls.setFloorBitMask(floorBitmask)
walkControls.setWalkSpeed(24.0, 24.0, 8.0, 80.0)
walkControls.initializeCollisions(base.cTrav,
                                  mouseBody,
                                  floorOffset=0.025,
                                  reach=4.0)
walkControls.setAirborneHeightFunc(getAirborneHeight)
walkControls.enableAvatarControls()
mouseBody.physControls = walkControls


def setWatchKey(key, input, keyMapName):
    def watchKey(active=True):
        if active == True:
Exemple #13
0
    def loadGame(self):
        # Adding onscreen text here
        self.inst1 = addInstructions(0.06, "Press F to toggle wireframe")
        self.inst2 = addInstructions(0.12, "Press X to toggle xray")
        self.inst3 = addInstructions(0.18,
                                     "Press 1 to activate cartoon shading")
        self.inst4 = addInstructions(0.24,
                                     "Press 2 to deactivate cartoon shading")
        self.inst4 = addInstructions(0.30, "Press 3 to toggle fog")
        self.inst4 = addInstructions(0.36, "Press 4 to toggle free camera")
        self.inst4 = addInstructions(0.42, "Press 5 to toggle bloom")
        self.inst4 = addInstructions(0.48,
                                     "Press 6 to toggle Ambient Occlusion")
        self.inst4 = addInstructions(
            0.54, "Press Escape to toggle the onscreen debug")

        #Loading required modules...
        self.loadWorld()
        localAvatar = self.getActor()
        base.localAvatar = localAvatar
        self.LoadButtons()
        self.loadShaders()
        self.FogDensity = self.loadFog()

        self.objectList = list()
        self.objectList.append(self.scene)

        # Floater Object (For camera)
        self.floater = NodePath(PandaNode("floater"))
        self.floater.reparentTo(self.actorBody)
        self.floater.setY(-10)
        self.floater.setZ(8.5)
        self.floater.setHpr(0, -10, 0)

        # Set Camera
        self.camera.reparentTo(self.floater)

        # Accept the control keys for movement and rotation
        self.accept('f', self.toggleWireframe)
        self.accept('x', self.toggle_xray_mode)
        self.accept('b', self.toggle_model_bounds)
        self.accept("escape", self.toggle_osd)
        self.accept("1", self.loadCartoonShaders)
        self.accept("2", self.unloadShaders)
        self.accept("3", self.toggleFog)
        self.accept("4", self.toggleCamera)
        self.accept("5", self.toggleBloom)
        self.accept("6", self.toggleAmbientOcclusion)

        #warning: bright! self.accept("6", self.toggleInvert)

        self.accept("arrow_left", self.setKey, ["left", True])
        self.accept("arrow_right", self.setKey, ["right", True])
        self.accept("arrow_up", self.setKey, ["forward", True])
        self.accept("arrow_down", self.setKey, ["backward", True])
        self.accept("arrow_left-up", self.setKey, ["left", False])
        self.accept("arrow_right-up", self.setKey, ["right", False])
        self.accept("arrow_up-up", self.setKey, ["forward", False])
        self.accept("arrow_down-up", self.setKey, ["backward", False])

        self.taskMgr.add(self.move, "moveTask")

        self.offset = 3.2375

        wallBitmask = BitMask32(1)
        floorBitmask = BitMask32(2)
        base.cTrav = CollisionTraverser()

        walkControls = GravityWalker(legacyLifter=True)
        walkControls.setWallBitMask(wallBitmask)
        walkControls.setFloorBitMask(floorBitmask)
        walkControls.setWalkSpeed(16.0, 24.0, 8.0, 80.0)
        walkControls.initializeCollisions(base.cTrav,
                                          self.actorBody,
                                          floorOffset=0.025,
                                          reach=4.0)
        walkControls.setAirborneHeightFunc(self.getAirborneHeight())
        walkControls.enableAvatarControls()
        # self.controlManager.add(walkControls, 'walk')
        self.actorBody.physControls = walkControls

        localAvatar.physControls.placeOnFloor()
        # problem: onScreenDebug.enabled = self.toggle

        # print(updateOnScreenDebug.enabled)

        onScreenDebug.enabled = True
        base.setFrameRateMeter(True)
        PStatClient.connect()

        base.taskMgr.add(self.updateOnScreenDebug, 'UpdateOSD')