module AuthorEngine::Part::OpalGraphics

Public Instance Methods

level(index, z = 0) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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) click to toggle source
# 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") click to toggle source
# 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) click to toggle source
# 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