先上图,看看引擎效果(还不错吧):
引擎本身由c++编写,使用python或者c++调用(pythoner有想开发3D游戏的,可以看看咯)。
下面简单的贴一下上面图片的代码:
1 from direct.showbase.ShowBase import ShowBase #基本显示模块 2 from math import pi,sin,cos 3 from direct.task import Task#任务模块 4 from direct.actor.Actor import Actor#动态模块 5 class MyApp(ShowBase): 6 def __init__(self):#场景初始化 7 ShowBase.__init__(self) 8 self.environ = self.loader.loadModel(r'models/environment') 9 self.environ.reparentTo(self.render)#self.render 渲染树根节点,设置之后才能对所有玄素进行渲染 10 self.environ.setScale(0.25,0.25,0.25) 11 self.environ.setPos(-8,42,0) 12 self.taskMgr.add(self.spinCameraTask,'SpinCameraTask')#调用任务spinCameraTask() 13 self.panda() 14 def spinCameraTask(self,task):#摄像机设置 15 angleDegrees = task.time * 6 16 angleRadians = angleDegrees * (pi/180) 17 self.camera.setPos(20 * sin(angleRadians),-20 * cos(angleRadians),3) 18 self.camera.setHpr(angleDegrees,0,0) 19 return Task.cont 20 def panda(self):#实现动态的熊猫 21 self.pandaActor = Actor('models/panda-model',{ 'walk' : 'models/panda-walk4'}) 22 self.pandaActor.setScale(0.005,0.005,0.005) 23 self.pandaActor.reparentTo(self.render)#self.render 渲染树根节点,设置以后才能对所有元素进行渲染 24 self.pandaActor.loop('walk') 25 def box(self): 26 pass 27 app = MyApp() 28 app.run() 29 run()
代码里的3D模型models/environment,'models/panda-model,{
'walk' : 'models/panda-walk4'},均来自panda3d官方网站(http://www.panda3d.org),有兴趣和有志做3D游戏的同学可以下载来研究下。免费使用。包括商业用途。