Module: AuthorEngine::Part::OpalGraphics
- Included in:
- Game
- Defined in:
- lib/author_engine/game/opal/parts/graphics.rb
Instance Method Summary collapse
- #level(index, z = 0) ⇒ Object
- #rect(x = 0, y = 0, width = 1, height = 1, color = "white", z = 0) ⇒ Object
- #rotate(angle, x = 0, y = 0, &block) ⇒ Object
- #sprite(sprite_sheet_index, x = 0, y = 0, z = 0, alpha = 255) ⇒ Object
- #swap(level, current_sprite, replacement_sprite) ⇒ Object
- #text(string, x = 0, y = 0, size = 4, z = 0, color = "white") ⇒ Object
- #translate(x, y, &block) ⇒ Object
Instance Method Details
#level(index, z = 0) ⇒ Object
35 36 37 38 39 40 41 42 |
# File 'lib/author_engine/game/opal/parts/graphics.rb', line 35 def level(index, z = 0) _level = AuthorEngine::GameRunner.instance.levels[index] raise "No level at '#{index}'!" unless _level _level.each do |sprite| sprite(sprite.sprite, sprite.x, sprite.y, z) end end |
#rect(x = 0, y = 0, width = 1, height = 1, color = "white", z = 0) ⇒ Object
4 5 6 7 8 |
# File 'lib/author_engine/game/opal/parts/graphics.rb', line 4 def rect(x = 0, y = 0, width = 1, height = 1, color = "white", z = 0) `#{@authorengine_canvas_context}.fillStyle = #{color}` `#{@authorengine_canvas_context}.fillRect(#{x}, #{y}, #{width}, #{height})` return nil end |
#rotate(angle, x = 0, y = 0, &block) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/author_engine/game/opal/parts/graphics.rb', line 60 def rotate(angle, x = 0, y = 0, &block) `#{@authorengine_canvas_context}.save()` `#{@authorengine_canvas_context}.translate(#{x}, #{y})` `#{@authorengine_canvas_context}.rotate(#{angle})` block.call if block `#{@authorengine_canvas_context}.restore()` end |
#sprite(sprite_sheet_index, x = 0, y = 0, z = 0, alpha = 255) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/author_engine/game/opal/parts/graphics.rb', line 10 def sprite(sprite_sheet_index, x = 0, y = 0, z = 0, alpha = 255) size = 16 # sprite size sprites = AuthorEngine::GameRunner.instance.sprites `#{@authorengine_canvas_context}.save()` if alpha <= 0 alpha = 0 else alpha = (alpha / 255.0) end `#{@authorengine_canvas_context}.globalAlpha = #{alpha}` `#{@authorengine_canvas_context}.drawImage(#{sprites[sprite_sheet_index]}, #{x}, #{y})` `#{@authorengine_canvas_context}.restore()` end |
#swap(level, current_sprite, replacement_sprite) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/author_engine/game/opal/parts/graphics.rb', line 44 def swap(level, current_sprite, replacement_sprite) _level = AuthorEngine::GameRunner.instance.levels[level] raise "No level at '#{index}'!" unless _level raise "No sprite at '#{current_sprite}'!" unless AuthorEngine::GameRunner.instance.sprites[current_sprite] raise "No sprite at '#{replacement_sprite}'!" unless AuthorEngine::GameRunner.instance.sprites[replacement_sprite] _level.each {|sprite| sprite.sprite = replacement_sprite if sprite.sprite == current_sprite} end |
#text(string, x = 0, y = 0, size = 4, z = 0, color = "white") ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/author_engine/game/opal/parts/graphics.rb', line 27 def text(string, x = 0, y = 0, size = 4, z = 0, color = "white") font = "#{size}px Connection, Consolas" `#{@authorengine_canvas_context}.font = #{font}` `#{@authorengine_canvas_context}.fillStyle = #{color}` `#{@authorengine_canvas_context}.textBaseline = "top"` `#{@authorengine_canvas_context}.fillText(#{string}, #{x}, #{y})` end |
#translate(x, y, &block) ⇒ Object
53 54 55 56 57 58 |
# File 'lib/author_engine/game/opal/parts/graphics.rb', line 53 def translate(x, y, &block) `#{@authorengine_canvas_context}.save()` `#{@authorengine_canvas_context}.translate(#{x}, #{y})` block.call if block `#{@authorengine_canvas_context}.restore()` end |