Итак, я столкнулся с несколькими идентичными проблемами с Eclipse, Lua и Love2D.
В этих случаях я создал таблицу, скажем, шрифты. Это в main.lua
. В fonts{}
я создаю пары ключей следующим образом:
fontsize = 24
gFonts{
['smallFont'] = love.graphics.newFont('fontfile.ttf', fontsize)
}
Затем я пытаюсь получить высоту шрифта позже, используя Love2D font.getHeight(self)
. Я делаю это так:
local fontSize = gFonts['smallFont'].getHeight(self)
Но это не работает. Он говорит мне, что getHeight
ожидает Шрифт, но я даю ему Таблицу. Это явно неправда, потому что Eclipse вызывает автозаполнение для 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? Как это работает?
gFonts['smallFont']:getHeight()
. - person lhf   schedule 11.08.2018