Перейти к основному содержимому

18.3. Мне нужно узнать, есть ли в папке файл (картинка, музыка и т.д.). Как это сделать?

В: Мне нужно узнать, есть ли в папке файл (картинка, музыка и т.д.). Как это сделать?

О:

К сожалению, в QSP нет специальной функции, позволяющей проверять наличие файлов в папках. Если файл отсутствует, плеер, в зависимости от типа файла, либо проигнорирует его отсутствие, либо покажет на экране ошибку.

Например, если плеер не найдёт файл музыки, он просто проигнорирует команду play. Если плеер не найдёт файл изображения, на экран будет выведена "битая картинка". Если плеер не найдёт файл модуля, он выведет ошибку 104: "указанный файл недоступен или не найден!".

Определённо можно проверить наличие звукового файла, если сразу после запуска мелодии воспользоваться функцией isplay:

play 'audio/coolmusic.mp3'
if isplay('audio/coolmusic.mp3'):
'Файл существует'
else
'Файл не существует'
end
[Вы можете организовать генерацию модуля со списком файлов в указанной папке. Вот метод, предложенный evp:]

Некий исполняемый файл (это может быть даже bat-файл):

  • составляет список файлов в указанной папке/папках;
  • сохраняет результаты своей работы в текстовый документ, используя синтаксис txt2gam для формирования нужных переменных или массивов;
  • конвертирует этот файл в .qsp, используя txt2gam.exe;
  • запускает игру.

В самой игре используется функция INCLIB для присоединения получившегося модуля.

Если вы используете QSP.sublime-package, у вас есть возможность прописать в файле проекта специальный параметр "scans", и тогда локация для проверки существования файла будет генерироваться автоматически на основе содержимого указанной папки.