panda3d虚幻引擎--(1)

本文档提供Panda3D的入门级教程,包括安装方式、窗口调整及环境导入等基本操作,适合初学者快速上手。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言(阿巴阿巴)

安装

调整窗口

导入环境


前言(阿巴阿巴)

前几天无意间看到了一个叫做panda3d的东西,觉得挺好玩,就翻教程,发现现在中文教程似乎没有那么全面成体系,大部分都是复制粘贴过来官网的实例然后就发布出去了,看得云里雾里的,所以我决定自己去摸索一下这个panda3d,学panda3d的小伙伴中间肯定遇到过很多坑,也有过很多不理解的地方,不过没关系,来瞅瞅我的这个panda3d教程,给你个比较全面的讲解。

我整了个QQ群,180962166,有不会的进来问就行(如果我会的话)

好了,正式开始。

安装

想要用这个panda3d呢可以通过官网sdk下载或者通过pip命令安装,官网地址Panda3D | Open Source Framework for 3D Rendering & Games

 

安装sdk就点击中间那个按钮就行,很简单对吧,不过我用的是另一种方式,pip安装

命令pip install Panda3D , pip install panda3d 这俩都行,都能安装下来。

然后新建一个文件夹起名叫ch1(名字无所谓),然后新建一个game.py(名字随便起)的文件

大概是这个样子 

调整窗口

下面直接贴代码块,讲解的内容也在代码块里(贴代码块省事,省的编辑格式了)


#第一步导入,导入这个叫做ShowBase的类,它是一个panda3d的基础类,用来创建窗口的
from direct.showbase.ShowBase import ShowBase
#然后定义一个Game类,继承上面导入的ShowBase类,然后就是Game类init,showBase类init,没啥好说的
class Game(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

#实例化一下这个Game类
game = Game()
#ShowBase类里有一个run方法,启动窗口用的,这里Game也继承了ShowBase,所以直接game.run()
game.run()

 运行之后发现出现了一个灰色窗口,窗口里没有任何东西(实际上,你根本没写东西,显示出其他东西的话才见鬼了)

好了,如果你运行出来上面窗口了,恭喜你,你的环境没有任何问题,可以继续往下进行了。

我觉得这个窗口有点小,我想调成我想要的


#第一步导入,导入这个叫做ShowBase的类,它是一个panda3d的基础类,用来创建窗口的
from direct.showbase.ShowBase import ShowBase

#############################################################
导入一个叫做WindowProperties的东西,它可以帮你解决窗口大小问题
from panda3d.core import WindowProperties
#############################################################




#然后定义一个Game类,继承上面导入的ShowBase类,然后就是Game类init,showBase类init,没啥好说的
class Game(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)

        ##############################################################
        properties = WindowProperties()
        第一个是长,第二个是宽
        properties.setSize(1000,750)
        给刚才的配置应用到窗口里
        self.win.requestProperties(properties)
        ##############################################################

#实例化一下这个Game类
game = Game()
#ShowBase类里有一个run方法,启动窗口用的,这里Game也继承了ShowBase,所以直接game.run()
game.run()

运行,然后你就会发现窗口变大了

 后面代码多了之后可能会变混乱,我把每一次出现的新代码用#框起来,#里出现的代码就是新加入的代码,这样看起来会比较容易点,当然如果各位观众老爷觉得这样看起来让你很不爽的话,评论区里告诉我,我改成其他方式。

导入环境

代码能跑了吗?能,但是只跑了一点点,空洞的一个灰窗口没啥意思,我给它加点背景,导入环境,让它没那么无趣。环境文件在QQ群里,群号博客开头有。

from direct.showbase.ShowBase import ShowBase
from panda3d.core import WindowProperties

#############################################
导入一个叫做Actor的类,它是用来加载模型的
from direct.actor.Actor import Actor
#############################################


class Game(ShowBase):
    def __init__(self):
        ShowBase.__init__(self)
        properties = WindowProperties()
        properties.setSize(1000,750)
        self.win.requestProperties(properties)

        ##########################################################################
        #panda3d提供了很多全局对象,这里的loader就是其中之一,用loader的loadModel方法可以把
        #环境文件导入到Game类里,environment不用写后缀,panda3d会自动帮你检测
        self.environment = self.loader.loadModel('Environment/environment')
        把self.environment定向到父节点下,self.render就是一个父节点,下面讲节点
        self.environment.reparentTo(self.render)
        ##########################################################################


game = Game()
game.run()

运行之后,环境模型被成功加载

 

上面提到了一个节点,这个节点是啥呢(了解即可)

这就是一个节点图,每个节点是一个对象,最上面的节点是所有类的父类 ,我们用到的全局对象render是一个Node,我们的Game也是一个Node,Game继承的父类ShowBase类也是一个Node,也就是说其实Panda3d里的东西都是Node形式的。

大概第一节课就讲这么多叭,跟着上面的代码跑一下,没问题的话咱们就继续下一讲了。观众老爷们下节见^-^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值