Class: Smalruby3::World
- Inherits:
-
Object
- Object
- Smalruby3::World
- Includes:
- Singleton
- Defined in:
- lib/smalruby3/world.rb
Instance Attribute Summary collapse
-
#s2dx ⇒ Object
readonly
Returns the value of attribute s2dx.
-
#sprites ⇒ Object
Returns the value of attribute sprites.
-
#stage ⇒ Object
Returns the value of attribute stage.
Instance Method Summary collapse
- #add_target(stage_or_sprite) ⇒ Object
- #asset_path(asset_id, data_format) ⇒ Object
- #delete_target(stage_or_sprite) ⇒ Object
-
#initialize ⇒ World
constructor
A new instance of World.
- #reset ⇒ Object
- #sprite(name) ⇒ Object
- #targets ⇒ Object
Constructor Details
#initialize ⇒ World
13 14 15 16 |
# File 'lib/smalruby3/world.rb', line 13 def initialize reset @s2dx = SmalrubyToDXRuby.new end |
Instance Attribute Details
#s2dx ⇒ Object (readonly)
Returns the value of attribute s2dx.
11 12 13 |
# File 'lib/smalruby3/world.rb', line 11 def s2dx @s2dx end |
#sprites ⇒ Object
Returns the value of attribute sprites.
10 11 12 |
# File 'lib/smalruby3/world.rb', line 10 def sprites @sprites end |
#stage ⇒ Object
Returns the value of attribute stage.
9 10 11 |
# File 'lib/smalruby3/world.rb', line 9 def stage @stage end |
Instance Method Details
#add_target(stage_or_sprite) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# 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) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# 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).(Dir.pwd) paths = [ Pathname("../#{md5}").(program_path), Pathname("../__assets__/#{md5}").(program_path), Pathname("../../../assets/#{md5}").(__FILE__), ] paths.find(&:file?).to_s end |
#delete_target(stage_or_sprite) ⇒ Object
36 37 38 39 40 41 42 43 44 45 |
# 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 ⇒ Object
55 56 57 |
# File 'lib/smalruby3/world.rb', line 55 def reset clear_sprites end |
#sprite(name) ⇒ Object
47 48 49 |
# File 'lib/smalruby3/world.rb', line 47 def sprite(name) @name_to_sprite[name] end |
#targets ⇒ Object
51 52 53 |
# File 'lib/smalruby3/world.rb', line 51 def targets [@stage, *@sprites].compact end |