Class: SpriteKit::SpritesheetLoader

Inherits:
Object
  • Object
show all
Defined in:
mygame/lib/sprite_kit/spritesheet_loader.rb

Instance Method Summary collapse

Constructor Details

#initializeSpritesheetLoader

Returns a new instance of SpritesheetLoader.



3
4
5
6
7
8
9
# File 'mygame/lib/sprite_kit/spritesheet_loader.rb', line 3

def initialize
  @loadable_extensions = [
    "jpeg",
    "jpg",
    "png"
  ]
end

Instance Method Details

#load_directory(directory, tile_width: 16, tile_height: 16, spritesheets: []) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'mygame/lib/sprite_kit/spritesheet_loader.rb', line 11

def load_directory(directory, tile_width: 16, tile_height: 16, spritesheets: [])
  return [] if directory.to_s == ""

  GTK.list_files(directory).each do |file|
    stat = GTK.stat_file(File.join(directory, file))

    next if !stat

    if stat[:file_type] == :directory
      load_directory(stat[:path], tile_width: tile_width, tile_height: tile_height, spritesheets: spritesheets)
    end

    extension = file.split(".").last

    if @loadable_extensions.include?(extension)
      spritesheets << load_file(
          name: stat[:name],
          path: stat[:path],
      )
    end
  end
  spritesheets
end

#load_file(name:, path:) ⇒ Object

Parameters:

  • name (String)
    • The name of the tilesheet

  • path (String)
    • The file path of the tilesheet



37
38
39
40
41
42
43
44
45
46
47
48
# File 'mygame/lib/sprite_kit/spritesheet_loader.rb', line 37

def load_file(name:, path:)
  file_width, file_height = $gtk.calcspritebox(path)

  {
    name: name,
    path: path,
    file_width: file_width,
    file_height: file_height,
    w: file_width,
    h: file_height,
  }
end