Config Files (简体中文)
Contents
介绍
如果在游戏文件夹中(或在 .love 文件中)有一个名为 conf.lua
的文件, 它将在 LÖVE 模块加载 之前 运行。你能使用这个文件重写稍后将被 LÖVE '启动' 脚本调用的 love.conf
函数。利用 love.conf
函数, 可以设置一些配置选项和改变一些设置,诸如窗口默认尺寸,要加载哪些模块及其它的一些设置。
love.conf
love.conf
函数有一个参数:一个填满所有默认数值的表,并且你可以根据喜好更改这些参数。例如,想更改默认的屏幕尺寸:
function love.conf(t)
t.window.width = 1024
t.window.height = 768
--[[ 0.8及之前版本为:
t.screen.width = 1024
t.screen.height = 768
]]
end
再举个栗子:如果不需要物理模块或手柄模块,就这么写
function love.conf(t)
t.modules.joystick = false
t.modules.physics = false
end
在发行游戏时,把不需要的模块设置为false是一件值得鼓励的事。这将稍微减少启动时间(特别是禁用 joystick 模块)和减少内存占用(稍微的)。
Love 当前版本的配置文件
下面是 LÖVE 11.0 版本的所有选项及它们的缺省值列表:
function love.conf(t)
t.identity = nil -- 盘存文件夹的名称 (string)
t.appendidentity = false -- Search files in source directory before save directory (boolean)
t.version = "11.0" -- 此游戏对应的 LÖVE 版本(string)
t.console = false -- 附带控制台 (boolean, Windows only)
t.accelerometerjoystick = true -- 通过将其暴露为操纵杆来启用 iOS and Android 上的加速度计 (boolean)
t.externalstorage = false -- 设为 True 会使程序在 Android 的外部存储中储存(和在同一目录读取)文件 (boolean)
t.gammacorrect = false -- 当系统支持时,启用伽玛校正渲染 (boolean)
t.audio.mixwithsystem = true -- 在 LOVE 运行时启用后台播放 (boolean, iOS and Android only)
t.window.title = "Untitled" -- 程序窗口标题 (string)
t.window.icon = nil -- 使用一张游戏目录中的图片作为窗口图标 (string)
t.window.width = 800 -- 程序窗口宽 (number)
t.window.height = 600 -- 程序窗口高 (number)
t.window.borderless = false -- 移除所有程序边框的视觉效果 (boolean)
t.window.resizable = false -- 允许鼠标拖动调整窗口的宽度和高度 (boolean)
t.window.minwidth = 1 -- 程序窗口的最小宽度,仅当t.window.resizable = true 时生效 (number)
t.window.minheight = 1 -- 程序窗口的最小高度,仅当t.window.resizable = true 时生效 (number)
t.window.fullscreen = false -- 打开程序后全屏运行游戏 (boolean)
t.window.fullscreentype = "desktop" -- 全屏的模式,有 "desktop" 桌面全屏 和 "exclusive" 全屏 两种选择 (string)
t.window.vsync = 1 -- 垂直同步模式 (number)
t.window.msaa = 0 -- 多样本采样抗锯齿时的样本数 (number)
t.window.depth = nil -- The number of bits per sample in the depth buffer
t.window.stencil = nil -- The number of bits per sample in the stencil buffer
t.window.display = 1 -- 显示器的指示显示窗口 (number)
t.window.highdpi = false -- 允许在视网膜显示器(Retina)下使用高DPI模式 (boolean)
t.window.x = nil -- 指定显示中窗口位置的 x坐标 (number)
t.window.y = nil -- 指定显示中窗口位置的 y坐标 (number)
t.modules.audio = true -- 加载 audio 模块 (boolean)
t.modules.data = true -- 加载 data 模块 (boolean)
t.modules.event = true -- 加载 event 模块 (boolean)
t.modules.font = true -- 加载 font 模块 (boolean)
t.modules.graphics = true -- 加载 graphics 模块 (boolean)
t.modules.image = true -- 加载 image 模块 (boolean)
t.modules.joystick = true -- 加载 the joystick 模块 (boolean)
t.modules.keyboard = true -- 加载 keyboard 模块 (boolean)
t.modules.math = true -- 加载 math 模块 (boolean)
t.modules.mouse = true -- 加载 mouse 模块 (boolean)
t.modules.physics = true -- 加载 physics 模块 (boolean)
t.modules.sound = true -- 加载 sound 模块 (boolean)
t.modules.system = true -- 加载 system 模块 (boolean)
t.modules.thread = true -- 加载 thread 模块 (boolean)
t.modules.timer = true -- 加载 timer 模块 (boolean),取消加载此模块会导致 love.update 中 delta time 为 0
t.modules.touch = true -- 加载 touch 模块 (boolean)
t.modules.video = true -- 加载 video 模块 (boolean)
t.modules.window = true -- 加载 window 模块 (boolean)
end
0.92 后未检验 注意,不能禁止love.filesystem; 他是被强制使用的。同样对 love 模块本身也是如此。
最新版本的love.conf
函数的选项内容总是可能会发生变化的,请注意这一点,0.92及更早版本的love.conf
配置列表请参看英文wiki
简单说明
identity
identity的值应该为存盘目录名,而非存盘的绝对或相对路径:
t.identity = "gabe_HL3" -- 正确
--[[
t.identity = "c:/Users/gabe/HL3"、"./save" 以及 " ~/config/gabe" 都是错误的
]]
另外 love.filesystem.setIdentity 函数也可以用来设置love2d的存盘目录名。
appendidentity
Available since LÖVE 11.0 |
This flag is not supported in earlier versions. |
This flag determines if game directory should be searched first then save directory (true
) or otherwise (false
)
version
Available since LÖVE 0.8.0 |
This flag is not supported in earlier versions. |
t.version
设置的意义在于告诉玩家作者在开发此款游戏时使用的love2d版本,t.version
的值应当为一个字符串,即类似"0.9.2"
这样的。顺便说一句love2d的版本号规则,love2d的版本号遵循X.Y.Z的设定,X代表主版本号,通常意味着有革命性的功能变化;Y代表次版本号,一般表示有局部的功能改进;Z是补丁版本号,通常意味着非常少或者没有功能改进,只是程序稳定性或BUG修复。
通常一款love2d开发的游戏,在主版本号和次版本号相同,补丁版本号不同的love2d下运行时,兼容性问题是非常小的;当你所运行的love2d引擎程序(请注意love2d引擎和love2d游戏包是两个不同物体)和作者开发所使用的主版本和次版本号不同时,不建议运行此游戏,你应当更换到和作者同版本的love2d引擎程序来运行游戏。
console
确定是否应在游戏窗口旁边打开控制台 (仅 Windows) 。 注意:在OSX上,您可以通过在终端运行 LÖVE 来获取控制台输出,在 Windows 上,当使用 LÖVE 0.10.2 时,可通过运行 lovec.exe
而非 love.exe
来做到这一点。
accelerometerjoystick
Available since LÖVE 0.10.0 |
This flag is not supported in earlier versions. |
决定 iOS 和 Android 上的加速度计是否应当作为一个三轴的 Joystick 被暴露。在不使用加速度计时禁用它可能会减少 CPU 使用率。
externalstorage
Available since LÖVE 0.10.1 |
This flag is not supported in earlier versions. |
设置文件应当保存在 Android 的 外部存储(true)或 内部存储(false) 中。
gammacorrect
Available since LÖVE 0.10.0 |
This flag is not supported in earlier versions. |
决定是否启用 gamma-correct rendering ,需要系统支持。
audio.mixwithsystem
Available since LÖVE 11.0 |
This flag is not supported in earlier versions. |
设置来自其他应用的背景 音效 / 音乐 在 LÖVE 打开时是否播放。查看 love.system.hasBackgroundMusic 获得更多细节。
window
Available since LÖVE 0.9.0 |
This flag is not supported in earlier versions. |
t.window
系列设置项用以设置游戏窗口相关内容,例如窗口宽和高,是否能拖拽修改宽高,是否默认全屏等等。
需要说明,在0.8及之前版本设置窗口的变量叫做t.screen
,如果你的程序想同时兼容新老love2d引擎,可以这样写
function love.conf(t)
--在0.9版本下写法
t.window = t.window or t.screen
t.window.width = 1024
t.window.height = 768
--t.window的其他子项以此类推
--在0.8及之前版本写法
t.screen = t.screen or t.window
t.screen.width = 1024
end
window.fullscreentype
Available since LÖVE 0.9.0 |
This flag is not supported in earlier versions. |
window.fullscreentype
用来设置游戏全屏的方式,可选值为normal
和desktop
。其中desktop指的是保留操作系统的任务栏(OSX的Dock及Linux下的Dock类程序亦保留)和程序的标题栏模式的全屏方式。
See Also
Other Languages
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info