Panda3D 配置

配置文件(The Configuration File)

本章介绍Panda3D使用的配置文件。


配置Panda(Configuring Panda)

配置文件Config.prc 在etc文件夹里,它控制Panda配置选项——包括使用OpenGL或DirectX,打印多少调试信息等。下面的表格列出最常用的变量:

变量

默认值
说明

load-display
pandagl
pandadx9
pandagl
指定渲染所用的图形API (OpenGL 或DirectX 9)

win-width
像素数
640
指定Panda3D窗口宽度

win-height
像素数
480
指定Panda3D窗口高度

win-origin-x
像素数
100
指定Panda3D窗口左上角的屏幕位置,X坐标

win-origin-y
像素数
100
指定Panda3D窗口左上角的屏幕位置,Y坐标

fullscreen
#t
#f
#f
是否全屏显示(true或false)

undecorated
#t
#f
#f
是否移除窗口边框

cursor-hidden
#t
#f
#f
是否隐藏鼠标指针

show-frame-rate-meter
#t
#f
#f
是否在右上角显示fps

audio-cache-limit
number
32
最多载入声音数

notify-level-[package]
fatal
error
warning
info
debug
spam
info
设定运行时的消息通知级别(fatal最少,spam 最多)

model-path
Path string
480
向路径列表增加载入模型时的搜索路径

texture-path
Path string
480
向路径列表增加载入纹理时的搜索路径

sound-path
Path string
480
向路径列表增加载入声音时的搜索路径

load-file-type ptloader
  
Enabled
允许载入在pandatool里提供了转换器的文件类型

audio-library-name
fmod_audio
miles_audio
null
fmod_audio
载入适当的音频驱动,如果有Miles的话就选它

want-directtools
#t
#f
#t
line commented out
打开directtools,一个交互式的物体/摄像机操纵工具

want-tk
#t
#f
#t
line commented out
支持Tkinter/PMW (Tk的Python封装)


hardware-point-sprite
#t
#f
#t
渲染点精灵(point sprite)时使用硬件加速

sync-video
#t
#f
#t
使用垂直同步(vertical synchronization)



在程序中访问配置变量(Accessing Config Vars in a Program)

Panda提供一些函数来读取Config.prc文件里设置,并在内存中修改这些值(修改的值并不写回磁盘文件)。通过程序读取并修改设置有2个主要用途:

1、  保留自己的配置数据

2、  调节panda的行为

“保留自己的配置数据”指你的游戏可能有自己的设置需要保留,你只需把配置数据加到panda配置文件,而不用写自己的配置文件解析器(parser)。

假设开发一款网游,网游当然要连接到服务器上,这时就需要一个配置文件来指定服务器的名字。打开Config.prc文件,在文件末尾加上这一行:

my-game-server pandagame.com

注意“my-game-server”是你刚创造的一个全新的变量,panda还不认识它,因此它不会对panda产生什么作用。

使用下面的代码控制这个变量。创建一个ConfigVariableString类实例,然后通过setValue和getValue方法来操作变量。

from pandac.PandaModules import ConfigVariableString

mygameserver = ConfigVariableString("my-game-server","127.0.0.1")
print "Server specified in config file: ", mygameserver.getValue()

# 允许在命令行下改变服务器
if (sys.argv[1]=="--server"): mygameserver.setValue(sys.argv[2])

print "Server that we will use: ", mygameserver.getValue()

如果“my-game-server”变量没有出现在Config.prc文件中,则默认返回ConfigVariableString构造函数的第二个参数。第三个参数可有可无,是关于该变量的一个描述,执行print cvMgr命令时将显示变量的描述文本。

配置变量的类型有:

ConfigVariableString
ConfigVariableInt
ConfigVariableBool
ConfigVariableDouble
ConfigVariableFilename
ConfigVariableList
ConfigVariableSearchPath

除了默认的返回值必须是相应的类型外,大部分变量的使用都跟ConfigVariableString一样。只有ConfigVariableList和 ConfigVariableSearchPath比较特殊,它们的构造函数不接受默认返回值,因为对它们来说,默认值通常是一个空的list或 search path。

我们可以用命令显示某个变量的当前值,下面的例子打印一个字符串型变量的值:

print ConfigVariableString('my-game-server')

Panda3D启动时会在标准的配置目录下自动加载任何*.prc文件,可以用下面的命令输出加载的文件列表:

print cpMgr

它可以确保我们编辑正确的Config.prc文件。

有时我们需要从磁盘读取另外一个配置文件,必须给出文件名。我们用函数loadPrcFile。记住Panda的文件路径使用“/”:

from pandac.PandaModules import loadPrcFile
loadPrcFile("config/Config.prc")

文件的搜索方式与调用loader.loadModel()时搜索模型文件的方式一样。

还可以使用loadPrcFileData来读取一个在Python代码里定义的字符串,就像从磁盘文件读来一样。loadPrcFileData()需 要2个参数,第一个是分配给文件的一个任意字符串名字(字符串可以为空),第二个是文件的内容,如果需要设置一个以上变量的值时,要分行显示每个变量。

例如,panda的配置文件里包含下面一行:

fullscreen 0

默认的panda程序以窗口方式运行,如果要全屏运行的话,必须这么做:

from pandac.PandaModules import loadPrcFileData
loadPrcFileData("", "fullscreen 1")
import direct.directbase.DirectStart

接下来当载入direct.directbase.DirectStart时,全屏标志已被改为真,程序将全屏运行。还有其他方法可以进入全屏,虽然拐了几个弯,但也管用。

可以在运行时(一旦import了DirectStart就进入运行时)用下面的命令得到一个更完全的配置变量列表:

cvMgr.listVariables()

转载于:https://my.oschina.net/doz/blog/38728

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值