heya guy’s i’m new to this panda3d stuff but getting there slowly, if someone could possible run my code and help me solve why my character is floating? it uses the ralph world model
import direct.directbase.DirectStart
from direct.showbase.DirectObject import DirectObject
from direct.showbase.InputStateGlobal import inputState
from direct.actor.Actor import Actor
from direct.task import Task
from direct.controls.GravityWalker import GravityWalker
from pandac.PandaModules import BitMask32
from pandac.PandaModules import CollisionTraverser
from pandac.PandaModules import ActorNode
#import math
import sys,os
#Starting of a class/structure ?
class World( DirectObject ):
#or is this the structure?
def init( self ):
base.cTrav = CollisionTraverser( )
mask = BitMask32.bit( 1 )
#Load the first environmental model
environ = loader.loadModel('models/ralph/world')
environ.reparentTo(render)
environ.setPos(0,0,0)
environ.setCollideMask(mask)
self.actorNode = ActorNode('Can be anything in here i found out')
self.actorNodePath = render.attachNewNode(self.actorNode)
self.actorNodePath.setPos( -0, 0, 0)
#Declare the "body" or "actor" to our model?
self.body = Actor('models/skeletons')
self.body.setScale(.2)
self.body.reparentTo(self.actorNodePath)
#Gravity is in here somehow too? LOL
self.walker = GravityWalker( gravity=-9.81, standableGround=-0.0)
self.walker.setAvatar( self.body )
self.walker.setWalkSpeed( -10, 30, -6, 90 )
self.walker.setWallBitMask( mask )
self.walker.setFloorBitMask( mask )
self.walker.initializeCollisions( base.cTrav, self.actorNodePath )
self.walker.enableAvatarControls( )
self.walker.placeOnFloor( )
#self.walker.displayDebugInfo( )
#onScreenDebug.enabled = True
base.taskMgr.add( self.update, 'update' )
inputState.watch('forward', 'arrow_up', 'arrow_up-up')
inputState.watch('reverse', 'arrow_down', 'arrow_down-up')
inputState.watch('turnLeft', 'arrow_left', 'arrow_left-up')
inputState.watch('turnRight', 'arrow_right', 'arrow_right-up')
inputState.watch( 'slideLeft', 'a', 'a-up' )
inputState.watch( 'slideRight', 'd', 'd-up' )
inputState.watch( 'jump', 'space', 'space-up' )
def update( self, task ):
self.walker.oneTimeCollide( )
return Task.cont
world = World( )
run( )