DragonRuby を使用して小さなアニメーションを作成するためにシーケンス内のファイルを反復処理しようとしていますが、Ruby で一般的に使用される Dir クラスを使用しようとするとエラーが発生します。エラーメッセージは次のとおりです。
EXCEPTION THROWN:
uninitialized constant FujiwaraGame::Dir
Backtrace:
app/main.rb:362:in video
app/main.rb:347:in render_video
app/main.rb:105:in render
app/main.rb:82:in gameplay
app/main.rb:74:in game_state
app/main.rb:405:in tick
app/main.rb:417:in tick
このフレームワークでは Dir クラスが認識されないようです。ファイルにアクセスする別の方法はありますか?私が使用しようとしていたコードは次のとおりです。
def video
x = 0
y = TILE_SIZE * 3
w = 1280
h = (720 - 80) - y # Adjusted for the HUD height
@video_image ||= { x: x, y: y, w: w, h: h, path: 'sprites/misc/frame_0000.png'}
video_file ||= ''
d = Dir.new("video")
d.each {|x| puts "Got #{x}" }
end
この問題は、この特定の関数だけでなく、Dir クラスを使用しようとするたびに発生します。さらに、ファイルを含むディレクトリはプロジェクト フォルダー内にあるため、問題にはなりません。
DragonRuby の Dir クラスを使用して、アニメーションを作成するディレクトリ内のファイルにアクセスするにはどうすればよいですか?
ディレクトリ内のファイルを開いて、Ruby のネイティブ Dir クラスを使用して小さなアニメーションを作成します
DragonRuby のファイル メソッドは、args.gtk オブジェクトで呼び出すことができます。ファイル アクセスはサンドボックス化されているため、ファイル システム内の任意のファイルにアクセスできないことに注意してください。
あなたの特定のケースでは、args.gtk.list_files(‘video’) はビデオディレクトリ内のすべてのファイル名をリストします。