This is my current version of the code:
from direct.showbase.ShowBase import ShowBase
from direct.actor.Actor import Actor
from direct.showbase import DirectObject
from direct.task import Task
from panda3d.core import Fog
class MyApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
# Load the environment model.
self.environ = self.loader.loadModel("environment")
self.environ.reparentTo(self.render)
tex = self.loader.loadTexture('/Users/38167/PycharmProjects/viren/venv/wood.jpg')
self.environ.setTexture(tex, 1)
# We do not have a skybox, so we will just use a sky blue background color
self.setBackgroundColor(0.53, 0.80, 0.92, 1)
myFog = Fog("Fog Name")
myFog.setColor(0, 0 , 0)
myFog.setExpDensity(0.01)
self.render.setFog(myFog)
self.pandaActor = Actor("models/panda-model",
{"walk": "models/panda-walk4"})
self.pandaActor.setScale(0.005, 0.005, 0.005)
self.pandaActor.reparentTo(self.render)
self.accept("arrow_up", self.Move)
self.accept("arrow_up-repeat", self.Move)
self.accept("arrow_up-up", self.stopMove)
self.accept("arrow_right", self.Move2)
self.taskMgr.add(self.camera_task, "camera")
def Move(self):
self.pandaActor.setY(self.pandaActor, -200)
self.pandaActor.setPlayRate(2, "walk")
walk = self.pandaActor.getAnimControl("walk")
if not walk.isPlaying():
self.pandaActor.loop("walk")
def stopMove(self):
self.pandaActor.stop("walk")
def Move2(self):
self.pandaActor.setH(self.pandaActor, -90)
def camera_task(self, task):
self.trackball.node().setPos(self.pandaActor.getX(), self.pandaActor.getY() + 15, -4)
self.camera.lookAt(self.pandaActor)
return Task.cont
app = MyApp()
app.run()
I would like to implement a feature where you can drag the actor around the environment, but I’m not really sure if this is possible and if so how to go about doing it. It would be great if anyone could provide some insight into this topic.
Thanks!