0

所以我正在使用 Ruby/Gosu 制作游戏,加载所有图像的行如下所示:

@image_name = Gosu::Image.new(self, 'C:\Users\Carlos\Desktop\gamefolder\assets\bg.jpg', false)

我想根据它们相对于引用文件的位置来引用它们。包含上述行的文件位于 中C:\Users\Carlos\Desktop\gamefolder\,所以我想我可以将上面的内容更改为'\assets\bg.jpg'or 'assets\bg.jpg',但这不起作用。

具体错误为“ Could not load image assets/bg.jpg using either GDI+ or FreeImage: Unknown Error (Runtime Error).

4

1 回答 1

2

如果你想获取当前目录(你的执行上下文,不一定是你'in'的文件),只需使用Dir.pwd. 将此输出到控制台以检查您的当前目录实际上是gamefolder.

要获取实际 ruby​​ 文件的当前目录(相对于Dir.pwd),请使用__FILE__,例如

File.dirname(__FILE__)

将其传递给以File.expand_path获得完全合格的路径。您可以通过确保File.exists?("#{File.expand_path File.dirname __FILE__}/assets/bg.jpg")返回 true 来进行一些健全性检查。

(试试File.expand_path('assets/bg.jpg')……这可能就是你所需要的。)

于 2013-10-23T20:30:06.733 回答