im trying to allow key input, but whenever i try to make a task for it i get the error global name KeyInput not defined whenever I try to run it,heres my code
from direct.showbase.ShowBase import ShowBase
from pandac.PandaModules import *
from direct.task import Task
from direct.interval.IntervalGlobal import Sequence
from panda3d.core import Point3
from direct.actor.Actor import Actor
import sys
legoy = 45
class MyApp(ShowBase):
def KeyInput(task):
task.accept('escape', sys.exit)
task.accept('w', self.moveDudeForward)
return task.cont
def moveDudeForward(self):
global legoy
legoy += .5
return
def __init__(self):
ShowBase.__init__(self)
taskMgr.add(KeyInput, 'ki')
#hpr (object.setHpr( z, x, y)) rotates around the z, x, and y axis respectively
self.dude = self.loader.loadModel("Lego_man_CompleteA2.egg")
self.dude.reparentTo(self.render)
self.dude.setScale(1.5, 1.5, 1.5)
self.dude.setPos(-4, legoy, -3)
self.dude.clearColor()
self.dude.setColor(1.0, 1.0, 1.0, 1.0)
self.KeyInput()
self.land = self.loader.loadModel("Landscape.egg")
self.land.reparentTo(self.render)
self.land.setScale(20, 20, 20)
self.land.setPos(-20, 50, -15)
self.land.clearColor()
self.land.setColor(1.0, 1.0, 1.0, 1.0)
dlight = DirectionalLight('dlight')
dlight.setColor(VBase4(0.8, 0.8, 0.5, 1))
dlnp = render.attachNewNode(dlight)
dlnp.setHpr(0, -60, 0)
render.setLight(dlnp)
base.disableMouse()
self.camera.setPos(20, 20, 3)
self.camera.lookAt(self.dude)
app = MyApp()
app.run()
ive tried changing it around for over an hour now, but cant get it to work