class Smalruby3::World
Attributes
s2dx[R]
sprites[RW]
stage[RW]
Public Class Methods
new()
click to toggle source
# File lib/smalruby3/world.rb, line 13 def initialize reset @s2dx = SmalrubyToDXRuby.new end
Public Instance Methods
add_target(stage_or_sprite)
click to toggle source
# File lib/smalruby3/world.rb, line 18 def add_target(stage_or_sprite) if stage_or_sprite.stage? stage = stage_or_sprite if @stage raise ExistStage.new(stage) end @stage = stage else sprite = stage_or_sprite if @name_to_sprite.key?(sprite.name) raise ExistSprite.new(sprite) end @sprites << sprite @name_to_sprite[sprite.name] = sprite end stage_or_sprite end
asset_path(asset_id, data_format)
click to toggle source
# File lib/smalruby3/world.rb, line 59 def asset_path(asset_id, data_format) if data_format == "svg" data_format = "png" end md5 = "#{asset_id}.#{data_format}" program_path = Pathname($PROGRAM_NAME).expand_path(Dir.pwd) paths = [ Pathname("../#{md5}").expand_path(program_path), Pathname("../__assets__/#{md5}").expand_path(program_path), Pathname("../../../assets/#{md5}").expand_path(__FILE__), ] paths.find(&:file?).to_s end
delete_target(stage_or_sprite)
click to toggle source
# File lib/smalruby3/world.rb, line 36 def delete_target(stage_or_sprite) if stage_or_sprite.stage? @stage = nil else sprite = stage_or_sprite @sprites.delete(sprite) @name_to_sprite.delete(sprite.name) end stage_or_sprite end
reset()
click to toggle source
# File lib/smalruby3/world.rb, line 55 def reset clear_sprites end
sprite(name)
click to toggle source
# File lib/smalruby3/world.rb, line 47 def sprite(name) @name_to_sprite[name] end
targets()
click to toggle source
# File lib/smalruby3/world.rb, line 51 def targets [@stage, *@sprites].compact end
Private Instance Methods
clear_sprites()
click to toggle source
# File lib/smalruby3/world.rb, line 76 def clear_sprites @stage = nil @sprites = [] @name_to_sprite = {} end