Module: AuthorEngine::Part::OpalGraphics

Included in:
Game
Defined in:
lib/author_engine/game/opal/parts/graphics.rb

Instance Method Summary collapse

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