Gosu поддерживает относительные пути, но они относительно рабочего каталога, в котором вы вызываете игру из , а не относительно исходного файла. Это может быть тем, что вас здесь смущает!
Например, для следующей структуры каталогов:
game
|--- src
| '--- main.rb
'--- res
'--- image.png
Если в качестве рабочего каталога у вас была папка game
и вы запускали ruby src/main.rb
тогда Госу сможет получить доступ к изображению относительно res/image.png
.
Это означает, что вам придется каждый раз запускать игру из определенного рабочего каталога, но, очевидно, это не идеально.
Вместо использования этих неуклюжих относительных путей может быть полезно использовать __dir__
вместе с File.expand_path
, чтобы получить абсолютный путь к каталогу, в котором выполняется ваш скрипт, и объединить его по этому пути, например:
# Running from src/main.rb
File.expand_path(File.join(__dir__, "../res/image.png"))
# => "/wherever/game/res/image.png"
Это лучше, чем жесткое программирование абсолютного пути, потому что ваша игра все равно будет работать на чужом компьютере.