dedalus 0.2.4 → 0.2.5

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
  SHA1:
3
- metadata.gz: f3924e9752fc9c8d8a2876d87e29f02c8f5f707e
4
- data.tar.gz: 9acd58aee7ad67a19fc7f7084074a23f67fdf0c0
3
+ metadata.gz: 88f15cbd5b07940df63fc17fd61e72a8ddf24a7f
4
+ data.tar.gz: bb73a24008f6eab92a2c7c47a806dfe78824a9d4
5
5
  SHA512:
6
- metadata.gz: 94ef50799a0910aff2e059eb38f23c39346a8ef3d2e2540b62e4785c8b37d14881aa1adbac904ca72c39bb9258b50c611183bf7de9821ce8dcedb340bc48d468
7
- data.tar.gz: 743fdd9592e52a7b9ff98374b31356a84f0cf562137b6af930de1ca3cb79738ba620c7dce08cce4cbe466adcfd062fc912c58f666403918f4a3af4f6e2177b22
6
+ metadata.gz: ad7b56513cacb16c5789c5ec3587fe76159bcc8401c8872c1e1ee84c26b07b5b19ecce8a5c89db2c4eb0f5b0b4356cb9d27e887df97880c63dc1014aa988dc26
7
+ data.tar.gz: 7bfba7732baf13d883bf8abbcfc454de45a9fc9ede240d02cf8caf8d3182f118e8978337d52a13232c4447f5338735bafa2fb03448d604dd6d4c94e18b05b904
@@ -42,7 +42,15 @@ module Dedalus
42
42
  )
43
43
  end
44
44
 
45
- atom.position = origin unless freeform
45
+ if freeform # then offset by origin
46
+ x0,y0 = *origin
47
+ x,y = *atom.position
48
+ atom.position = [x+x0,y+y0]
49
+ else
50
+ atom.position = origin
51
+ end
52
+
53
+ # atom.position = origin unless freeform
46
54
  atom.render
47
55
  end
48
56
 
@@ -1,11 +1,13 @@
1
1
  module Dedalus
2
2
  module Elements
3
3
  class Image < Dedalus::Atom
4
- attr_accessor :path, :padding, :z_order
4
+ attr_accessor :path, :padding, :z_order, :invert_x, :invert_y
5
5
 
6
6
  def render
7
7
  x,y = *position
8
- asset.draw(x + padding, y + padding, z_order, scale, scale)
8
+ x_scale = invert_x ? -scale : scale
9
+ y_scale = invert_y ? -scale : scale
10
+ asset.draw(x + padding, y + padding, z_order, x_scale, y_scale)
9
11
  end
10
12
 
11
13
  def z_order
@@ -10,7 +10,7 @@ module Dedalus
10
10
  def self.example_data
11
11
  {
12
12
  path: "media/images/tiles.png",
13
- frame: 0,
13
+ frame: 3,
14
14
  width: 64,
15
15
  height: 64
16
16
  }
@@ -0,0 +1,63 @@
1
+ module Dedalus
2
+ module Elements
3
+ class SpriteField < Dedalus::Organism
4
+
5
+ attr_accessor :grid, :sprite_map, :scale
6
+
7
+ def show
8
+ layers
9
+ end
10
+
11
+ def layers
12
+ layer_stack = Dedalus::LayerStack.new
13
+ layer_stack.push(Dedalus::Layer.new(background_image))
14
+ layer_stack.push(Dedalus::Layer.new(image_grid))
15
+
16
+ # TODO one sprite *layer*
17
+ sprite_map.each do |location, sprite_list|
18
+ sprite_list.each do |sprite_attrs|
19
+ position = to_screen_coordinates(location: location)
20
+ sprite = Sprite.new(sprite_attrs.merge(position: position))
21
+ layer_stack.push(Dedalus::Layer.new(sprite, freeform: true))
22
+ end
23
+ end
24
+
25
+ layer_stack
26
+ end
27
+
28
+ def image_grid
29
+ ImageGrid.new(
30
+ tiles_path: 'media/images/tiles.png',
31
+ grid: grid,
32
+ tile_width: 64,
33
+ tile_height: 64
34
+ )
35
+ end
36
+
37
+ def to_screen_coordinates(location:)
38
+ x,y = *location
39
+ [(x * image_grid.tile_width), (y * image_grid.tile_height)]
40
+ end
41
+
42
+ def background_image
43
+ Image.new(path: "media/images/cosmos.jpg", z_order: -1, scale: self.scale)
44
+ end
45
+
46
+ def self.description
47
+ 'sprites overlaid on an image grid'
48
+ end
49
+
50
+ def self.example_data
51
+ {
52
+ grid: [[0,0,0,0,0],
53
+ [0,0,0,0,0],
54
+ [1,1,1,1,1],
55
+ [1,1,1,1,1]],
56
+ scale: 0.3,
57
+ player_location: [2,2],
58
+ sprite_map: { [0,0] => [ Sprite.example_data ] }
59
+ }
60
+ end
61
+ end
62
+ end
63
+ end
@@ -1,4 +1,4 @@
1
1
  module Dedalus
2
2
  # dedalus version
3
- VERSION = "0.2.4"
3
+ VERSION = "0.2.5"
4
4
  end
data/lib/dedalus.rb CHANGED
@@ -19,5 +19,6 @@ require 'dedalus/elements/image'
19
19
  require 'dedalus/elements/icon'
20
20
  require 'dedalus/elements/sprite'
21
21
  require 'dedalus/elements/image_grid'
22
+ require 'dedalus/elements/sprite_field'
22
23
 
23
24
  require 'dedalus/pattern_library'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dedalus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.4
4
+ version: 0.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joseph Weissman
@@ -172,6 +172,7 @@ files:
172
172
  - lib/dedalus/elements/image_grid.rb
173
173
  - lib/dedalus/elements/paragraph.rb
174
174
  - lib/dedalus/elements/sprite.rb
175
+ - lib/dedalus/elements/sprite_field.rb
175
176
  - lib/dedalus/elements/text.rb
176
177
  - lib/dedalus/elements/void.rb
177
178
  - lib/dedalus/image_repository.rb