Class: RoadToRubykaigi::Sprite::Effects
- Inherits:
-
Object
- Object
- RoadToRubykaigi::Sprite::Effects
- Defined in:
- lib/road_to_rubykaigi/sprite/effect.rb
Instance Method Summary collapse
- #build_buffer(offset_x:) ⇒ Object
- #heart(x, y) ⇒ Object
- #lightning(x, y) ⇒ Object
- #note(x, y) ⇒ Object
- #to_a ⇒ Object
- #update ⇒ Object
Instance Method Details
#build_buffer(offset_x:) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/road_to_rubykaigi/sprite/effect.rb', line 20 def build_buffer(offset_x:) buffer = Array.new(Map::VIEWPORT_HEIGHT) { Array.new(Map::VIEWPORT_WIDTH) { "" } } @effects.each do |effect| bounding_box = effect.bounding_box relative_x = bounding_box[:x] - offset_x - 1 relative_y = bounding_box[:y] - 1 next if relative_x < 1 buffer[relative_y][relative_x] = effect.character end buffer end |
#heart(x, y) ⇒ Object
8 9 10 |
# File 'lib/road_to_rubykaigi/sprite/effect.rb', line 8 def heart(x, y) @effects << HeartEffect.new(x, y) end |
#lightning(x, y) ⇒ Object
16 17 18 |
# File 'lib/road_to_rubykaigi/sprite/effect.rb', line 16 def lightning(x, y) @effects << LightningEffect.new(x, y) end |
#note(x, y) ⇒ Object
12 13 14 |
# File 'lib/road_to_rubykaigi/sprite/effect.rb', line 12 def note(x, y) @effects << NoteEffect.new(x, y) end |
#to_a ⇒ Object
32 33 34 |
# File 'lib/road_to_rubykaigi/sprite/effect.rb', line 32 def to_a @effects.to_a end |
#update ⇒ Object
4 5 6 |
# File 'lib/road_to_rubykaigi/sprite/effect.rb', line 4 def update @effects.reject!(&:expired?) end |