zoukankan      html  css  js  c++  java
  • 使用python脚本的3D引擎Panda3d

    先上图,看看引擎效果(还不错吧):

    引擎本身由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游戏的同学可以下载来研究下。免费使用。包括商业用途。



  • 相关阅读:
    case when完成不同条件的显示
    联行号不正确的触发器
    |待研究|委托付款的支付状态触发器
    待解决:新增客商校验触发器|两个错误|
    C#.NET和C++结构体Socket通信与数据转换
    C#中struct和class的区别详解
    C#与C++数据类型比较及结构体转换[整理]
    surging+CentOS7+docker+rancher2.0 入门部署教程
    Google Maps API Key申请办法(最新)
    开源的api文档管理系统
  • 原文地址:https://www.cnblogs.com/evening/p/2419276.html
Copyright © 2011-2022 走看看