所以我在 Eclipse、Lua 和 Love2D 中遇到了一些相同的问题。
在这些情况下,我创建了一个表格,比如字体。它在main.lua
。在fonts{}
中,我创建这样的密钥对:
fontsize = 24
gFonts{
['smallFont'] = love.graphics.newFont('fontfile.ttf', fontsize)
}
然后我尝试稍后使用 Love2D's 获取字体的高度font.getHeight(self)
。我这样做:
local fontSize = gFonts['smallFont'].getHeight(self)
但它不起作用。它告诉我getHeight
期待一个字体,但我给它一个表格。这显然不是真的,因为getHeight:Font
当我在gFonts['smallFont']
.
因此,我尝试将 分配smallFont
给一个名为msgFont
并从中访问的变量getHeight
。不,没有工作。我什至抹去了“自我”。没有修复。
我也试过love.graphics.getHeight(fontcodehere)
,它有点工作......但它抓住了整个窗口的高度,而不是字体。
我确实设法让它工作,但我不明白为什么这样工作以及为什么需要双字体参考。我用了:
local msgFont = gFonts['small']
local fontSize = msgFont.getHeight(gFonts['small'])
为什么这行得通?我理解的msgFont
部分或将字体放在getHeight
-分开......但是为什么它们需要一起使用?
是不是,
table['key'] == 'value'
?
为什么它返回一个表格而不是一个 Love2D 字体对象/注册表?我为什么要打电话
getHeight()
并将其本身作为表格传递?
为什么我不能打电话
getHeight()
并通过它自己?
如果这是一个愚蠢的问题,我很抱歉——我从未接受过正式的编程教育,我觉得这与我无法正确理解的范围有关。也许 self 不是指字体,而是指 getHeight?这是如何运作的?