Spec-Zone.ru › LÖVE

love.filesystem.load

Доступно начиная с LÖVE 0.5.0
Эта функция не поддерживается в более ранних версиях.

Загружает файл Lua (но не выполняет его).

Функция

Синопсис

chunk, errormsg = love.filesystem.load( name )

Аргументы

string name
Имя (и путь) файла.

Возвращаемые значения

function chunk
Загруженный фрагмент кода.
string errormsg (nil)
Сообщение об ошибке, если файл не удалось открыть.

Пример

Важно отметить, что love.filesystem.load не вызывает код, а только создаёт функцию (фрагмент кода), которая будет содержать содержимое файла. Для выполнения фрагмента кода необходимо добавить скобки () после него.

Также стоит отметить, что загруженные файлы могут возвращать значения. Например, следующий файл:

return 1+1

Вернёт 2, если вызвать его так:

chunk = love.filesystem.load( name ) -- load the chunk
local result = chunk() -- execute the chunk
print('result: ' .. tostring(result)) -- prints 'result: 2'

Это приведёт к ошибке, если в загруженном файле есть синтаксическая ошибка. Если вы хотите продолжить игру, даже если файл некорректен (например, если вы ожидаете, что его напишут пользователи), вы можете защитить вызов фрагмента кода с помощью pcall:

local ok, chunk, result
ok, chunk = pcall( love.filesystem.load, name ) -- load the chunk safely
if not ok then
  print('The following error happened: ' .. tostring(chunk))
else
  ok, result = pcall(chunk) -- execute the chunk safely
 
  if not ok then -- will be false if there is an error
    print('The following error happened: ' .. tostring(result))
  else
    print('The result of loading is: ' .. tostring(result))
  end
end

См. также

  • love.filesystem


© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.filesystem.load

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API