author_engine 0.6.1 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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