newQuad функция ограничена 5? Луа

Я использую Love2D с lua, и когда я использую 5 квадов (love.graphics.newQuad), кажется, что все работает нормально, но когда я использую 6 квадроциклов, появляется странная ошибка:

Error menu.lua:9: Incoorect parameter type: expected userdata.
Traceback [C]: in function 'drawq'
menu.lua:9: in function 'draw'
[C]: in function 'xpcall'

Строка меню 9 такова:

love.graphics.drawq(Tileset, Quads[number], x, y)

Я предполагаю, что это как-то связано с причиной четырехугольников, когда я удаляю шестой из тайловой карты, и шестой четырехугольник загружается.

Я попытался скопировать другие квадроциклы, чтобы посмотреть, не пропустил ли я что-то по буквам, но это не тот случай.

Вот код:

menu.lua

main.lua

mapsload.lua


person Dallox    schedule 22.03.2012    source источник
comment
Поместите код в свой фактический пост. По крайней мере, код Lua. Не заставляйте людей скачивать какой-нибудь zip-файл.   -  person Nicol Bolas    schedule 22.03.2012
comment
Я имел в виду в вашем посте, не давая ссылки на него.   -  person Nicol Bolas    schedule 22.03.2012


Ответы (1)


Вы определяете только 5 записей в таблице Quads в вашем main.lua. Если вы внимательно посмотрите на mapsload.lua в MenuBack строке 17, вы увидите значение 6, одиноко стоящее среди 1-5.

Теперь, когда вы хотите использовать Quads[6], этого ключа нет в таблице Quads. Поэтому Lua возвращает ноль. И, как вы можете догадаться, nil не является пользовательскими данными, поэтому функция drawq не работает.

person Michal Kottman    schedule 23.03.2012