dedalus 0.2.4 → 0.2.5

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
  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