Функция newQuad ограничена 5? Lua - PullRequest
0 голосов
/ 22 марта 2012

Я использую 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)

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

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

Вот код:

Menu.lua

main.lua

mapsload.lua

1 Ответ

1 голос
/ 23 марта 2012

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

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

...