Difference between revisions of "Config Files (简体中文)"
(→简单说明) |
|||
(16 intermediate revisions by 4 users not shown) | |||
Line 17: | Line 17: | ||
</source> | </source> | ||
− | + | 再举个栗子:如果不需要物理模块或手柄模块,就这么写 | |
<source lang="lua"> | <source lang="lua"> | ||
function love.conf(t) | function love.conf(t) | ||
Line 25: | Line 25: | ||
</source> | </source> | ||
− | + | 在发行游戏时,把不需要的模块设置为false是一件值得鼓励的事。这将稍微减少启动时间(特别是禁用 joystick 模块)和减少内存占用(稍微的)。 | |
− | == Love | + | == Love 当前版本的配置文件 == |
− | + | 下面是 LÖVE [[11.0]] 版本的所有选项及它们的缺省值列表: | |
− | 下面是 | ||
<source lang="lua"> | <source lang="lua"> | ||
function love.conf(t) | function love.conf(t) | ||
t.identity = nil -- 盘存文件夹的名称 (string) | t.identity = nil -- 盘存文件夹的名称 (string) | ||
− | t.version = "0 | + | 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.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.title = "Untitled" -- 程序窗口标题 (string) | ||
Line 45: | Line 50: | ||
t.window.minheight = 1 -- 程序窗口的最小高度,仅当t.window.resizable = true 时生效 (number) | t.window.minheight = 1 -- 程序窗口的最小高度,仅当t.window.resizable = true 时生效 (number) | ||
t.window.fullscreen = false -- 打开程序后全屏运行游戏 (boolean) | t.window.fullscreen = false -- 打开程序后全屏运行游戏 (boolean) | ||
− | t.window.fullscreentype = " | + | t.window.fullscreentype = "desktop" -- 全屏的模式,有 "desktop" 桌面全屏 和 "exclusive" 全屏 两种选择 (string) |
− | t.window.vsync = | + | t.window.vsync = 1 -- 垂直同步模式 (number) |
− | t.window. | + | 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.display = 1 -- 显示器的指示显示窗口 (number) | ||
t.window.highdpi = false -- 允许在视网膜显示器(Retina)下使用高DPI模式 (boolean) | t.window.highdpi = false -- 允许在视网膜显示器(Retina)下使用高DPI模式 (boolean) | ||
− | t.window. | + | t.window.x = nil -- 指定显示中窗口位置的 x坐标 (number) |
+ | t.window.y = nil -- 指定显示中窗口位置的 y坐标 (number) | ||
t.modules.audio = true -- 加载 audio 模块 (boolean) | t.modules.audio = true -- 加载 audio 模块 (boolean) | ||
+ | t.modules.data = true -- 加载 data 模块 (boolean) | ||
t.modules.event = true -- 加载 event 模块 (boolean) | t.modules.event = true -- 加载 event 模块 (boolean) | ||
+ | t.modules.font = true -- 加载 font 模块 (boolean) | ||
t.modules.graphics = true -- 加载 graphics 模块 (boolean) | t.modules.graphics = true -- 加载 graphics 模块 (boolean) | ||
t.modules.image = true -- 加载 image 模块 (boolean) | t.modules.image = true -- 加载 image 模块 (boolean) | ||
Line 63: | Line 73: | ||
t.modules.sound = true -- 加载 sound 模块 (boolean) | t.modules.sound = true -- 加载 sound 模块 (boolean) | ||
t.modules.system = true -- 加载 system 模块 (boolean) | t.modules.system = true -- 加载 system 模块 (boolean) | ||
− | t.modules.timer = true -- 加载 timer 模块 (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) | t.modules.window = true -- 加载 window 模块 (boolean) | ||
− | |||
end | end | ||
</source> | </source> | ||
− | 注意,不能禁止[[love.filesystem]]; 他是被强制使用的。同样对 [[love]] 模块本身也是如此。 | + | '''0.92''' 后未检验 注意,不能禁止[[love.filesystem]]; 他是被强制使用的。同样对 [[love]] 模块本身也是如此。 |
+ | |||
+ | 最新版本的<code>love.conf</code>函数的选项内容总是可能会发生变化的,请注意这一点,'''0.92'''及更早版本的<code>love.conf</code>配置列表请参看[http://love2d.org/wiki/Config_Files#love.conf 英文wiki] | ||
− | |||
== 简单说明 == | == 简单说明 == | ||
+ | ==== identity ==== | ||
+ | identity的值应该为存盘目录名,而非存盘的绝对或相对路径: | ||
+ | <source lang="lua"> | ||
+ | t.identity = "gabe_HL3" -- 正确 | ||
+ | --[[ | ||
+ | t.identity = "c:/Users/gabe/HL3"、"./save" 以及 " ~/config/gabe" 都是错误的 | ||
+ | ]] | ||
+ | </source> | ||
+ | 另外 [[love.filesystem.setIdentity]] 函数也可以用来设置love2d的存盘目录名。 | ||
+ | |||
+ | ==== appendidentity ==== | ||
+ | {{newin|[[11.0]]|110|type=flag}} | ||
+ | This flag determines if game directory should be searched first then save directory (<code>true</code>) or otherwise (<code>false</code>) | ||
+ | |||
+ | ==== version ==== | ||
+ | {{newin|[[0.8.0]]|080|type=flag}} | ||
+ | <code>t.version</code>设置的意义在于告诉玩家作者在开发此款游戏时使用的love2d版本,<code>t.version</code>的值应当为一个字符串,即类似<code>"0.9.2"</code>这样的。顺便说一句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]] 时,可通过运行 <code>lovec.exe</code> 而非 <code>love.exe</code> 来做到这一点。 | ||
+ | |||
+ | ==== accelerometerjoystick ==== | ||
+ | {{newin|[[0.10.0]]|100|type=flag}} | ||
+ | 决定 iOS 和 Android 上的加速度计是否应当作为一个三轴的 [[Joystick]] 被暴露。在不使用加速度计时禁用它可能会减少 CPU 使用率。 | ||
+ | |||
+ | ==== externalstorage ==== | ||
+ | {{newin|[[0.10.1]]|101|type=flag}} | ||
+ | 设置文件应当保存在 Android 的 外部存储(true)或 内部存储(false) 中。 | ||
+ | |||
+ | ==== gammacorrect ==== | ||
+ | {{newin|[[0.10.0]]|100|type=flag}} | ||
+ | 决定是否启用 [[love.graphics.isGammaCorrect|gamma-correct rendering]] ,需要系统支持。 | ||
+ | |||
+ | ==== audio.mixwithsystem ==== | ||
+ | {{newin|[[11.0]]|110|type=flag}} | ||
+ | 设置来自其他应用的背景 音效 / 音乐 在 LÖVE 打开时是否播放。查看 [[love.system.hasBackgroundMusic]] 获得更多细节。 | ||
+ | |||
+ | ==== window ==== | ||
+ | {{newin|[[0.9.0]]|080|type=flag}} | ||
+ | <code>t.window</code>系列设置项用以设置游戏窗口相关内容,例如窗口宽和高,是否能拖拽修改宽高,是否默认全屏等等。 | ||
+ | |||
+ | 需要说明,在0.8及之前版本设置窗口的变量叫做<code>t.screen</code>,如果你的程序想同时兼容新老love2d引擎,可以这样写 | ||
+ | <source lang="lua"> | ||
+ | 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 | ||
+ | </source> | ||
+ | |||
+ | ==== window.fullscreentype ==== | ||
+ | {{newin|[[0.9.0]]|080|type=flag}} | ||
+ | <code>window.fullscreentype</code>用来设置游戏全屏的方式,可选值为<code>normal</code>和<code>desktop</code>。其中desktop指的是保留操作系统的任务栏(OSX的Dock及Linux下的Dock类程序亦保留)和程序的标题栏模式的全屏方式。 | ||
+ | == See Also == | ||
+ | * [[parent::love (简体中文)]] | ||
+ | [[Category:LÖVE]] | ||
+ | [[Category:Callbacks]] | ||
+ | {{#set:Subcategory=General}} | ||
+ | {{#set:Description=Game configuration settings.}} | ||
+ | {{#set:Since=000}} | ||
== Other Languages == | == Other Languages == | ||
{{i18n|Config_Files}} | {{i18n|Config_Files}} | ||
− | |||
− |
Latest revision as of 13:06, 16 October 2019
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