author_engine 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4708e029c91cdcb46645b45bf91a957c24a0fa5f9526a4160da593d0a1ac109
4
- data.tar.gz: 5270d1b8af030bf17c53a8d332e8e07dfd84b70aaf505580a52c094856bd69c3
3
+ metadata.gz: 6e0cf77555ac655bee109b3681e36f866779c24609dd450c178ea12088c3c12c
4
+ data.tar.gz: 37ac43dbfb944219f24af1a8c50ef592d1a640d32ae73e3546cb84a354a4728c
5
5
  SHA512:
6
- metadata.gz: d2f1290dd9488db2e3fbb6c7af5ba34e1b2f2ea441f76cc8bb22b3ae6f42040d6230e68c514a7a05677b1f0336574ab4e6207f33bb4d47f49a690a7a8ff46b1d
7
- data.tar.gz: 584f14bc9da7a63e19cbd633f65a8c6e1fc6d05e2b5aa9c152dc05d67bf7c09031c01db94cd0543848c10d828fb220452be1db583c4fa70b780aaa84d973aa62
6
+ metadata.gz: d82bf5325058010870fc12bb021d92bd83d15e969d8ccfa88bdc46ee50070ed59081036cf9238e4951cdb0f43cfe75e0772c0c1100123e39188f0d41ebc6e861
7
+ data.tar.gz: d85204b91769adaf42d054a852d2792bbef29f2630b5c9774a373fac726844804b33a43d2dcbdc970dd4aa1842135ad7b583e27eba1bc7dc3ed4312cf143d7c9
@@ -32,11 +32,11 @@ Gem::Specification.new do |spec|
32
32
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
33
33
  spec.require_paths = ["lib", "assets"]
34
34
 
35
- spec.add_dependency "gosu", "~> 0.14.4"
35
+ spec.add_dependency "gosu", "~> 0.14.5"
36
36
  spec.add_dependency "coderay", "~> 1.1.2"
37
- spec.add_dependency "opal", "~> 0.11.4"
37
+ spec.add_dependency "opal", "~> 1.0.0"
38
38
 
39
- spec.add_development_dependency "bundler", "~> 1.16"
40
- spec.add_development_dependency "rake", "~> 10.0"
41
- spec.add_development_dependency "minitest", "~> 5.0"
39
+ spec.add_development_dependency "bundler", "~> 2.0"
40
+ spec.add_development_dependency "rake", "~> 13.0"
41
+ spec.add_development_dependency "minitest", "~> 5.13"
42
42
  end
@@ -151,13 +151,13 @@ class AuthorEngine
151
151
 
152
152
  def draw_line(x, y, x2, y2, color, z = 0)
153
153
  if RUBY_ENGINE == "opal"
154
- `#{AuthorEngine::GameRunner.instance.game.canvas_context}.strokeStyle = #{color}`
155
- `#{AuthorEngine::GameRunner.instance.game.canvas_context}.lineWidth = 1`
154
+ `#{AuthorEngine::GameRunner.instance.game.authorengine_canvas_context}.strokeStyle = #{color}`
155
+ `#{AuthorEngine::GameRunner.instance.game.authorengine_canvas_context}.lineWidth = 1`
156
156
 
157
- `#{AuthorEngine::GameRunner.instance.game.canvas_context}.beginPath()`
158
- `#{AuthorEngine::GameRunner.instance.game.canvas_context}.moveTo(#{x}, #{y})`
159
- `#{AuthorEngine::GameRunner.instance.game.canvas_context}.lineTo(#{x2}, #{y2})`
160
- `#{AuthorEngine::GameRunner.instance.game.canvas_context}.stroke()`
157
+ `#{AuthorEngine::GameRunner.instance.game.authorengine_canvas_context}.beginPath()`
158
+ `#{AuthorEngine::GameRunner.instance.game.authorengine_canvas_context}.moveTo(#{x}, #{y})`
159
+ `#{AuthorEngine::GameRunner.instance.game.authorengine_canvas_context}.lineTo(#{x2}, #{y2})`
160
+ `#{AuthorEngine::GameRunner.instance.game.authorengine_canvas_context}.stroke()`
161
161
  else
162
162
  Gosu.draw_line(x, y, color, x2, y2, color, z)
163
163
  end
@@ -2,31 +2,31 @@ class AuthorEngine
2
2
  class Part
3
3
  module CollisionDetection
4
4
  def bounding_box(sprite_index)
5
- @collision_detection.box(sprite_index)
5
+ @authorengine_collision_detection.box(sprite_index)
6
6
  end
7
7
 
8
8
  def colliding_edge(sprite_index, sprite_x, sprite_y, target_sprite_index, target_x, target_y)
9
- @collision_detection.colliding_edge(sprite_index, sprite_x, sprite_y, target_sprite_index, target_x, target_y)
9
+ @authorengine_collision_detection.colliding_edge(sprite_index, sprite_x, sprite_y, target_sprite_index, target_x, target_y)
10
10
  end
11
11
 
12
12
  def sprite_vs_sprite(sprite_index, sprite_x, sprite_y, target_sprite_index, target_x, target_y)
13
- @collision_detection.sprite_vs_sprite(sprite_index, sprite_x, sprite_y, target_sprite_index, target_x, target_y)
13
+ @authorengine_collision_detection.sprite_vs_sprite(sprite_index, sprite_x, sprite_y, target_sprite_index, target_x, target_y)
14
14
  end
15
15
 
16
16
  def sprite_vs_level(sprite_index, sprite_x, sprite_y, level)
17
- @collision_detection.sprite_vs_level(sprite_index, sprite_x, sprite_y, level)
17
+ @authorengine_collision_detection.sprite_vs_level(sprite_index, sprite_x, sprite_y, level)
18
18
  end
19
19
 
20
20
  def draw_sprite_box(sprite_index, sprite_x, sprite_y)
21
- @collision_detection.debug_draw_sprite(sprite_index, sprite_x, sprite_y)
21
+ @authorengine_collision_detection.debug_draw_sprite(sprite_index, sprite_x, sprite_y)
22
22
  end
23
23
 
24
24
  def draw_level_boxes(level_index)
25
- @collision_detection.debug_draw_level(level_index)
25
+ @authorengine_collision_detection.debug_draw_level(level_index)
26
26
  end
27
27
 
28
28
  def render_bounding_box(sprite_index, box, sprite_x, sprite_y, edges = {}, z = Float::INFINITY)
29
- @collision_detection.render_bounding_box(sprite_index, box, sprite_x, sprite_y, edges, z)
29
+ @authorengine_collision_detection.render_bounding_box(sprite_index, box, sprite_x, sprite_y, edges, z)
30
30
  end
31
31
  end
32
32
  end
@@ -27,11 +27,15 @@ class AuthorEngine
27
27
  Math.sqrt(dx * dx + dy * dy)
28
28
  end
29
29
 
30
+ def levels
31
+ @authorengine_levels ? @authorengine_levels : AuthorEngine::GameRunner.instance.levels
32
+ end
33
+
30
34
  # returns number of milliseconds since game started
31
35
  def milliseconds
32
36
  if RUBY_ENGINE == "opal"
33
37
  @__initial_milliseconds ||= `performance.now()`
34
- (`performance.now()` - @__initial_milliseconds).round(3)
38
+ (`performance.now()` - @__initial_milliseconds)
35
39
  else
36
40
  Gosu.milliseconds
37
41
  end
@@ -12,27 +12,28 @@ class AuthorEngine
12
12
  include AuthorEngine::Part::GosuInput
13
13
  end
14
14
 
15
- attr_accessor :scale, :canvas, :canvas_context
16
- attr_accessor :collision_detection
15
+ attr_accessor :authorengine_scale, :authorengine_canvas, :authorengine_canvas_context
16
+ attr_accessor :authorengine_collision_detection
17
17
  def initialize(code:)
18
18
  if RUBY_ENGINE == "opal"
19
- @scale = 1.0
20
- @canvas = `document.getElementById('canvas')`
21
- @canvas_context = `#{@canvas}.getContext('2d')`
19
+ @authorengine_scale = 1.0
20
+ @authorengine_canvas = `document.getElementById('canvas')`
21
+ @authorengine_canvas_context = `#{@authorengine_canvas}.getContext('2d')`
22
22
  end
23
23
 
24
24
  if RUBY_ENGINE != "opal"
25
- @sprites = SpriteEditor.instance.sprites
25
+ @authorengine_sprites = SpriteEditor.instance.sprites
26
26
 
27
- @levels = []
27
+ @authorengine_levels = []
28
28
  # Create a "Deep Copy" to allow for swapping of a level's sprites without corrupting LevelEditor's version
29
29
  LevelEditor.instance.levels.each do |level|
30
- @levels << level.sort_by {|sprite| sprite.z}.map {|sprite| sprite.dup}
30
+ @authorengine_levels << level.sort_by {|sprite| sprite.z}.map {|sprite| sprite.dup}
31
31
  end
32
32
  size = 16
33
- @levels.each {|level| level.each {|sprite| sprite.x = sprite.x * size; sprite.y = sprite.y * size}}
33
+ @authorengine_levels.each {|level| level.each {|sprite| sprite.x = sprite.x * size; sprite.y = sprite.y * size}}
34
34
 
35
- @collision_detection = CollisionDetection.new(@sprites, @levels, Window.instance.container.savefile.sprites)
35
+ spritesheet = SpriteEditor.instance.spritesheet
36
+ @authorengine_collision_detection = CollisionDetection.new(@authorengine_sprites, @authorengine_levels, SaveFile::SpriteSheetData.new(spritesheet.width, spritesheet.height, spritesheet.to_blob))
36
37
  end
37
38
 
38
39
  @background_color = black
@@ -6,27 +6,27 @@ class AuthorEngine
6
6
  end
7
7
 
8
8
  def text(text, x = 0, y = 0, size = 4, z = 0, color = white)
9
- @fonts ||= {}
9
+ @authorengine_fonts ||= {}
10
10
 
11
11
  font = nil
12
12
 
13
- if @fonts.dig(size)
14
- font = @fonts.dig(size)
13
+ if @authorengine_fonts.dig(size)
14
+ font = @authorengine_fonts.dig(size)
15
15
  else
16
- font = (@fonts[size] = Gosu::Font.new(size, name: Text::FONT_DEFAULT))
16
+ font = (@authorengine_fonts[size] = Gosu::Font.new(size, name: Text::FONT_DEFAULT))
17
17
  end
18
18
 
19
19
  font.draw_markup(text, x, y, z, 1, 1, color)
20
20
  end
21
21
 
22
22
  def sprite(index, x = 0, y = 0, z = 0, alpha = 255)
23
- image = @sprites[index]
23
+ image = @authorengine_sprites[index]
24
24
  raise "No sprite at '#{index}'!" unless image
25
25
  image.draw(x, y, z, 1,1, Gosu::Color.rgba(255,255,255, alpha))
26
26
  end
27
27
 
28
28
  def level(index, z = 0)
29
- _level = @levels[index]
29
+ _level = @authorengine_levels[index]
30
30
  raise "No level at '#{index}'!" unless _level
31
31
 
32
32
  _level.each do |sprite|
@@ -35,10 +35,10 @@ class AuthorEngine
35
35
  end
36
36
 
37
37
  def swap(level, current_sprite, replacement_sprite)
38
- _level = @levels[level]
38
+ _level = @authorengine_levels[level]
39
39
  raise "No level at '#{index}'!" unless _level
40
- raise "No sprite at '#{current_sprite}'!" unless @sprites[current_sprite]
41
- raise "No sprite at '#{current_sprite}'!" unless @sprites[replacement_sprite]
40
+ raise "No sprite at '#{current_sprite}'!" unless @authorengine_sprites[current_sprite]
41
+ raise "No sprite at '#{current_sprite}'!" unless @authorengine_sprites[replacement_sprite]
42
42
 
43
43
  _level.each {|sprite| sprite.sprite = replacement_sprite if sprite.sprite == current_sprite}
44
44
  end
@@ -37,7 +37,7 @@ class AuthorEngine
37
37
  resize_canvas
38
38
 
39
39
  @collision_detection = AuthorEngine::CollisionDetection.new(@sprites, @levels, @save_file.sprites)
40
- @game.collision_detection = @collision_detection
40
+ @game.authorengine_collision_detection = @collision_detection
41
41
 
42
42
  @game.init
43
43
 
@@ -72,9 +72,9 @@ class AuthorEngine
72
72
 
73
73
  def run_game
74
74
  `window.requestAnimationFrame(function() {#{run_game}})` # placed here to ensure next frame is called even if draw or update throw an error
75
- `#{@game.canvas_context}.clearRect(0,0, window.innerWidth, window.innerHeight)`
76
- `#{@game.canvas_context}.fillStyle = "#222"`
77
- `#{@game.canvas_context}.fillRect(0,0, window.innerWidth, window.innerHeight)`
75
+ `#{@game.authorengine_canvas_context}.clearRect(0,0, window.innerWidth, window.innerHeight)`
76
+ `#{@game.authorengine_canvas_context}.fillStyle = "#222"`
77
+ `#{@game.authorengine_canvas_context}.fillRect(0,0, window.innerWidth, window.innerHeight)`
78
78
 
79
79
  @counted_frames+=1
80
80
 
@@ -86,23 +86,23 @@ class AuthorEngine
86
86
 
87
87
 
88
88
  if @sprites.size == (@spritesheet_width/@sprite_size)*(@spritesheet_height/@sprite_size)
89
- width = 128 * @game.scale
89
+ width = 128 * @game.authorengine_scale
90
90
 
91
- # `#{@canvas_context}.setTransform(1, 0, 0, 1, 0, 0)`
92
- `#{@game.canvas_context}.save()`
93
- `#{@game.canvas_context}.translate(window.innerWidth/2 - #{width/2}, 0)`
94
- `#{@game.canvas_context}.scale(#{@game.scale}, #{@game.scale})`
95
- `#{@game.canvas_context}.save()`
91
+ # `#{@game.authorengine_canvas_context}.setTransform(1, 0, 0, 1, 0, 0)`
92
+ `#{@game.authorengine_canvas_context}.save()`
93
+ `#{@game.authorengine_canvas_context}.translate(window.innerWidth/2 - #{width/2}, 0)`
94
+ `#{@game.authorengine_canvas_context}.scale(#{@game.authorengine_scale}, #{@game.authorengine_scale})`
95
+ `#{@game.authorengine_canvas_context}.save()`
96
96
 
97
97
  region = `new Path2D()`
98
98
  `#{region}.rect(0, 0, 128, 128)`
99
- `#{@game.canvas_context}.clip(#{region})`
100
- `#{@game.canvas_context}.save()`
99
+ `#{@game.authorengine_canvas_context}.clip(#{region})`
100
+ `#{@game.authorengine_canvas_context}.save()`
101
101
  draw
102
102
 
103
- `#{@game.canvas_context}.restore()`
104
- `#{@game.canvas_context}.restore()`
105
- `#{@game.canvas_context}.restore()`
103
+ `#{@game.authorengine_canvas_context}.restore()`
104
+ `#{@game.authorengine_canvas_context}.restore()`
105
+ `#{@game.authorengine_canvas_context}.restore()`
106
106
 
107
107
  update
108
108
 
@@ -112,7 +112,7 @@ class AuthorEngine
112
112
  end
113
113
  else
114
114
  @game.draw_background
115
- @game.text("Loading sprite #{@sprites.size}/#{(@spritesheet_width/@sprite_size)*(@spritesheet_height/@sprite_size)}.", 0, @game.height/2, 8)
115
+ @game.text("Loading sprite #{@sprites.size}/#{(@spritesheet_width/@sprite_size)*(@spritesheet_height/@sprite_size)}...", 0, @game.height/2, 8)
116
116
  end
117
117
 
118
118
  return nil
@@ -137,17 +137,17 @@ class AuthorEngine
137
137
  height = `window.innerHeight`
138
138
 
139
139
  if width < height
140
- @game.scale = `window.innerWidth / 128.0`
140
+ @game.authorengine_scale = `window.innerWidth / 128.0`
141
141
  else
142
- @game.scale = `window.innerHeight / 128.0`
142
+ @game.authorengine_scale = `window.innerHeight / 128.0`
143
143
  end
144
144
 
145
- `#{@game.canvas}.width = #{width}`
146
- `#{@game.canvas}.height = #{height}`
147
- `#{@game.canvas}.style.width = #{width}`
148
- `#{@game.canvas}.style.height = #{height}`
145
+ `#{@game.authorengine_canvas}.width = #{width}`
146
+ `#{@game.authorengine_canvas}.height = #{height}`
147
+ `#{@game.authorengine_canvas}.style.width = #{width}`
148
+ `#{@game.authorengine_canvas}.style.height = #{height}`
149
149
 
150
- `#{@game.canvas_context}.imageSmoothingEnabled = false`
150
+ `#{@game.authorengine_canvas_context}.imageSmoothingEnabled = false`
151
151
 
152
152
  reposition_touch_controls
153
153
  return nil
@@ -208,12 +208,12 @@ class AuthorEngine
208
208
  `document.addEventListener('keydown', (event) => { #{@show_touch_controls = false; AuthorEngine::Part::OpalInput::KEY_STATES[`event.key`] = true} })`
209
209
  `document.addEventListener('keyup', (event) => { #{AuthorEngine::Part::OpalInput::KEY_STATES[`event.key`] = false} })`
210
210
 
211
- `#{@game.canvas}.addEventListener('touchstart', (event) => { #{@show_touch_controls = true; handle_touch_start(`event`)} })`
212
- `#{@game.canvas}.addEventListener('touchmove', (event) => { #{handle_touch_move(`event`)} })`
213
- `#{@game.canvas}.addEventListener('touchcancel', (event) => { #{handle_touch_cancel(`event`)} })`
214
- `#{@game.canvas}.addEventListener('touchend', (event) => { #{handle_touch_end(`event`)} })`
211
+ `#{@game.authorengine_canvas}.addEventListener('touchstart', (event) => { #{@show_touch_controls = true; handle_touch_start(`event`)} })`
212
+ `#{@game.authorengine_canvas}.addEventListener('touchmove', (event) => { #{handle_touch_move(`event`)} })`
213
+ `#{@game.authorengine_canvas}.addEventListener('touchcancel', (event) => { #{handle_touch_cancel(`event`)} })`
214
+ `#{@game.authorengine_canvas}.addEventListener('touchend', (event) => { #{handle_touch_end(`event`)} })`
215
215
 
216
- `#{@game.canvas}.addEventListener('fullscreenchange', () => { #{fullscreen_changed} })`
216
+ `#{@game.authorengine_canvas}.addEventListener('fullscreenchange', () => { #{fullscreen_changed} })`
217
217
 
218
218
  `document.getElementById('loading').style.display = "none"`
219
219
 
@@ -2,8 +2,8 @@ class AuthorEngine
2
2
  class Part
3
3
  module OpalGraphics
4
4
  def rect(x = 0, y = 0, width = 1, height = 1, color = "white", z = 0)
5
- `#{@canvas_context}.fillStyle = #{color}`
6
- `#{@canvas_context}.fillRect(#{x}, #{y}, #{width}, #{height})`
5
+ `#{@authorengine_canvas_context}.fillStyle = #{color}`
6
+ `#{@authorengine_canvas_context}.fillRect(#{x}, #{y}, #{width}, #{height})`
7
7
  return nil
8
8
  end
9
9
 
@@ -11,25 +11,25 @@ class AuthorEngine
11
11
  size = 16 # sprite size
12
12
  sprites = AuthorEngine::GameRunner.instance.sprites
13
13
 
14
- `#{@canvas_context}.save()`
14
+ `#{@authorengine_canvas_context}.save()`
15
15
  if alpha <= 0
16
16
  alpha = 0
17
17
  else
18
18
  alpha = (alpha / 255.0)
19
19
  end
20
- `#{@canvas_context}.globalAlpha = #{alpha}`
20
+ `#{@authorengine_canvas_context}.globalAlpha = #{alpha}`
21
21
 
22
- `#{@canvas_context}.drawImage(#{sprites[sprite_sheet_index]}, #{x}, #{y})`
22
+ `#{@authorengine_canvas_context}.drawImage(#{sprites[sprite_sheet_index]}, #{x}, #{y})`
23
23
 
24
- `#{@canvas_context}.restore()`
24
+ `#{@authorengine_canvas_context}.restore()`
25
25
  end
26
26
 
27
27
  def text(string, x = 0, y = 0, size = 4, z = 0, color = "white")
28
28
  font = "#{size}px Connection, Consolas"
29
- `#{@canvas_context}.font = #{font}`
30
- `#{@canvas_context}.fillStyle = #{color}`
31
- `#{@canvas_context}.textBaseline = "top"`
32
- `#{@canvas_context}.fillText(#{string}, #{x}, #{y})`
29
+ `#{@authorengine_canvas_context}.font = #{font}`
30
+ `#{@authorengine_canvas_context}.fillStyle = #{color}`
31
+ `#{@authorengine_canvas_context}.textBaseline = "top"`
32
+ `#{@authorengine_canvas_context}.fillText(#{string}, #{x}, #{y})`
33
33
  end
34
34
 
35
35
  def level(index, z = 0)
@@ -51,18 +51,18 @@ class AuthorEngine
51
51
  end
52
52
 
53
53
  def translate(x, y, &block)
54
- `#{@canvas_context}.save()`
55
- `#{@canvas_context}.translate(#{x}, #{y})`
54
+ `#{@authorengine_canvas_context}.save()`
55
+ `#{@authorengine_canvas_context}.translate(#{x}, #{y})`
56
56
  block.call if block
57
- `#{@canvas_context}.restore()`
57
+ `#{@authorengine_canvas_context}.restore()`
58
58
  end
59
59
 
60
60
  def rotate(angle, x = 0, y = 0, &block)
61
- `#{@canvas_context}.save()`
62
- `#{@canvas_context}.translate(#{x}, #{y})`
63
- `#{@canvas_context}.rotate(#{angle})`
61
+ `#{@authorengine_canvas_context}.save()`
62
+ `#{@authorengine_canvas_context}.translate(#{x}, #{y})`
63
+ `#{@authorengine_canvas_context}.rotate(#{angle})`
64
64
  block.call if block
65
- `#{@canvas_context}.restore()`
65
+ `#{@authorengine_canvas_context}.restore()`
66
66
  end
67
67
  end
68
68
  end
@@ -10,7 +10,7 @@ class AuthorEngine
10
10
  @key_states = AuthorEngine::Part::OpalInput::KEY_STATES
11
11
 
12
12
  @game = AuthorEngine::GameRunner.instance.game
13
- @game_width = 128 * @game.scale
13
+ @game_width = 128 * @game.authorengine_scale
14
14
  @game_x = `window.innerWidth/2 - #{@game_width/2}`
15
15
 
16
16
  if @side == :left
@@ -25,14 +25,14 @@ class AuthorEngine
25
25
  end
26
26
 
27
27
  def draw
28
- `#{@game.canvas_context}.fillStyle = #{@color}`
29
- `#{@game.canvas_context}.fillRect(#{@x}, #{@y}, #{@width}, #{@height})`
28
+ `#{@game.authorengine_canvas_context}.fillStyle = #{@color}`
29
+ `#{@game.authorengine_canvas_context}.fillRect(#{@x}, #{@y}, #{@width}, #{@height})`
30
30
 
31
31
  font = "#{@height}px Connection, Consolas"
32
- `#{@game.canvas_context}.font = #{font}`
33
- `#{@game.canvas_context}.fillStyle = "white"`
34
- `#{@game.canvas_context}.textBaseline = "top"`
35
- `#{@game.canvas_context}.fillText(#{@label}, #{@x}, #{@y}, #{@width})`
32
+ `#{@game.authorengine_canvas_context}.font = #{font}`
33
+ `#{@game.authorengine_canvas_context}.fillStyle = "white"`
34
+ `#{@game.authorengine_canvas_context}.textBaseline = "top"`
35
+ `#{@game.authorengine_canvas_context}.fillText(#{@label}, #{@x}, #{@y}, #{@width})`
36
36
  end
37
37
 
38
38
  def trigger?(touches)
@@ -27,8 +27,8 @@ class AuthorEngine
27
27
  }`
28
28
 
29
29
  if @fullscreen_button && @fullscreen_button.trigger?(@current_touches)
30
- `if (document.fullscreenElement == null && #{@game.canvas}.requestFullscreen) {
31
- #{game.canvas}.requestFullscreen()
30
+ `if (document.fullscreenElement == null && #{@game.authorengine_canvas}.requestFullscreen) {
31
+ #{game.authorengine_canvas}.requestFullscreen()
32
32
  } else if(document.fullscreenElement != null && document.exitFullscreen) {
33
33
  document.exitFullscreen()
34
34
  } `
@@ -7,7 +7,7 @@ class AuthorEngine
7
7
  @key_states = AuthorEngine::Part::OpalInput::KEY_STATES
8
8
 
9
9
  @game = AuthorEngine::GameRunner.instance.game
10
- @game_width = 128 * @game.scale
10
+ @game_width = 128 * @game.authorengine_scale
11
11
  @game_x = `window.innerWidth/2 - #{@game_width/2}`
12
12
 
13
13
  if @side == :left
@@ -27,16 +27,16 @@ class AuthorEngine
27
27
 
28
28
  def draw
29
29
  # Background
30
- `#{@game.canvas_context}.fillStyle = #{@background}`
31
- `#{@game.canvas_context}.beginPath()`
32
- `#{@game.canvas_context}.arc(#{@x}, #{@y}, #{@radius}, 0, 2 * Math.PI)`
33
- `#{@game.canvas_context}.fill()`
30
+ `#{@game.authorengine_canvas_context}.fillStyle = #{@background}`
31
+ `#{@game.authorengine_canvas_context}.beginPath()`
32
+ `#{@game.authorengine_canvas_context}.arc(#{@x}, #{@y}, #{@radius}, 0, 2 * Math.PI)`
33
+ `#{@game.authorengine_canvas_context}.fill()`
34
34
 
35
35
  # Joystick
36
- `#{@game.canvas_context}.beginPath()`
37
- `#{@game.canvas_context}.fillStyle = #{@color}`
38
- `#{@game.canvas_context}.arc(#{@joystick_x}, #{@joystick_y}, #{@joystick_radius}, 0, 2 * Math.PI)`
39
- `#{@game.canvas_context}.fill()`
36
+ `#{@game.authorengine_canvas_context}.beginPath()`
37
+ `#{@game.authorengine_canvas_context}.fillStyle = #{@color}`
38
+ `#{@game.authorengine_canvas_context}.arc(#{@joystick_x}, #{@joystick_y}, #{@joystick_radius}, 0, 2 * Math.PI)`
39
+ `#{@game.authorengine_canvas_context}.fill()`
40
40
 
41
41
  return nil
42
42
  end
@@ -1,3 +1,3 @@
1
1
  class AuthorEngine
2
- VERSION = "0.6.1"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -116,17 +116,13 @@ class AuthorEngine
116
116
  end
117
117
 
118
118
  def move_viewport
119
- if window.button_down?(Gosu::KbUp)
120
- @viewport_y += 1 * @scale
121
- elsif window.button_down?(Gosu::KbDown)
122
- @viewport_y -= 1 * @scale
123
- elsif window.button_down?(Gosu::KbLeft)
124
- @viewport_x += 1 * @scale
125
- elsif window.button_down?(Gosu::KbRight)
126
- @viewport_x -= 1 * @scale
127
- elsif window.button_down?(Gosu::Kb0)
128
- @viewport_x, @viewport_y = 0, 0
129
- end
119
+ @viewport_y += 1 * @scale if window.button_down?(Gosu::KbUp)
120
+ @viewport_y -= 1 * @scale if window.button_down?(Gosu::KbDown)
121
+
122
+ @viewport_x += 1 * @scale if window.button_down?(Gosu::KbLeft)
123
+ @viewport_x -= 1 * @scale if window.button_down?(Gosu::KbRight)
124
+
125
+ @viewport_x, @viewport_y = 0, 0 if window.button_down?(Gosu::Kb0)
130
126
  end
131
127
 
132
128
  def normalize(int)
@@ -110,7 +110,7 @@ class AuthorEngine
110
110
  # super
111
111
  if @running
112
112
  catch_error do
113
- @game.collision_detection.clear
113
+ @game.authorengine_collision_detection.clear
114
114
  update_game
115
115
  end
116
116
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: author_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyberarm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-02 00:00:00.000000000 Z
11
+ date: 2019-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 0.14.4
19
+ version: 0.14.5
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 0.14.4
26
+ version: 0.14.5
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: coderay
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -44,56 +44,56 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.11.4
47
+ version: 1.0.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.11.4
54
+ version: 1.0.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.16'
61
+ version: '2.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.16'
68
+ version: '2.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: minitest
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '5.0'
89
+ version: '5.13'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '5.0'
96
+ version: '5.13'
97
97
  description: Create arcade style games quickly and easily
98
98
  email:
99
99
  - matthewlikesrobots@gmail.com