shirokuro 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +23 -0
  3. data/.rspec +0 -0
  4. data/Gemfile +4 -0
  5. data/Guardfile +21 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +21 -0
  8. data/Rakefile +8 -0
  9. data/examples/audio/main.rb +40 -0
  10. data/examples/audio/run.sh +2 -0
  11. data/examples/layers_and_sorting/main.rb +62 -0
  12. data/examples/layers_and_sorting/run.sh +2 -0
  13. data/examples/physx/main.rb +114 -0
  14. data/examples/physx/run.sh +2 -0
  15. data/examples/shared/content/audio/boing.ogg +0 -0
  16. data/examples/shared/content/audio/song_1.ogg +0 -0
  17. data/examples/shared/content/gfx/character_sprite.png +0 -0
  18. data/examples/shared/content/gfx/tileset.png +0 -0
  19. data/examples/shared/content/maps/stage2.json +299 -0
  20. data/examples/sprite/main.rb +43 -0
  21. data/examples/sprite/run.sh +2 -0
  22. data/examples/sprite_animation/main.rb +45 -0
  23. data/examples/sprite_animation/run.sh +2 -0
  24. data/examples/tmx_map/main.rb +70 -0
  25. data/examples/tmx_map/run.sh +2 -0
  26. data/lib/shirokuro.rb +42 -0
  27. data/lib/shirokuro/audio/audio_manager.rb +80 -0
  28. data/lib/shirokuro/content/content_manager.rb +58 -0
  29. data/lib/shirokuro/ecs/component.rb +37 -0
  30. data/lib/shirokuro/ecs/game_object.rb +58 -0
  31. data/lib/shirokuro/ecs/game_object_manager.rb +51 -0
  32. data/lib/shirokuro/ecs/id_generator.rb +10 -0
  33. data/lib/shirokuro/math/matrix.rb +72 -0
  34. data/lib/shirokuro/math/transform.rb +16 -0
  35. data/lib/shirokuro/math/vec2.rb +38 -0
  36. data/lib/shirokuro/physics/physics.rb +22 -0
  37. data/lib/shirokuro/standard_components/animations/animation.rb +30 -0
  38. data/lib/shirokuro/standard_components/animations/animation_component.rb +28 -0
  39. data/lib/shirokuro/standard_components/cameras/camera.rb +59 -0
  40. data/lib/shirokuro/standard_components/maps/map_component.rb +10 -0
  41. data/lib/shirokuro/standard_components/physics/box_collider.rb +40 -0
  42. data/lib/shirokuro/standard_components/physics/circle_collider.rb +29 -0
  43. data/lib/shirokuro/standard_components/physics/polygon_collider.rb +35 -0
  44. data/lib/shirokuro/standard_components/physics/rigid_body.rb +57 -0
  45. data/lib/shirokuro/standard_components/rendering/animation_sprite_renderer.rb +26 -0
  46. data/lib/shirokuro/standard_components/rendering/map_renderer.rb +36 -0
  47. data/lib/shirokuro/standard_components/rendering/shape_renderer.rb +95 -0
  48. data/lib/shirokuro/standard_components/rendering/sprite_renderer.rb +21 -0
  49. data/lib/shirokuro/standard_components/tmx/tmx_map.rb +20 -0
  50. data/lib/shirokuro/standard_components/tmx/tmx_map_layer.rb +38 -0
  51. data/lib/shirokuro/standard_components/tmx/tmx_map_layer_object.rb +17 -0
  52. data/lib/shirokuro/standard_components/transformation/rotation.rb +14 -0
  53. data/lib/shirokuro/version.rb +3 -0
  54. data/shirokuro.gemspec +30 -0
  55. data/spec/shirokuro/ecs/component_spec.rb +78 -0
  56. data/spec/shirokuro/ecs/game_object_manager_spec.rb +113 -0
  57. data/spec/shirokuro/ecs/game_object_spec.rb +110 -0
  58. data/spec/shirokuro/math/matrix_spec.rb +49 -0
  59. data/spec/shirokuro/math/transform_spec.rb +28 -0
  60. data/spec/shirokuro/math/vec2_spec.rb +49 -0
  61. data/spec/spec_helper.rb +12 -0
  62. metadata +223 -0
@@ -0,0 +1,113 @@
1
+ require 'spec_helper'
2
+
3
+ describe SK::GameObjectManager do
4
+
5
+ it "can create a game_object with a name" do
6
+ expect(SK::GameObjectManager.new).to respond_to(:create).with(1).argument
7
+ end
8
+
9
+ it "can not create a game_object without a name" do
10
+ expect(SK::GameObjectManager.new).to_not respond_to(:create).with(0).arguments
11
+ end
12
+
13
+ it "creates a new game_object when calling name" do
14
+ expect(SK::GameObjectManager.new.create("my_obj").name).to eq("my_obj")
15
+ end
16
+
17
+ it "can remove a game_object" do
18
+ manager = SK::GameObjectManager.new
19
+ game_object = manager.create("obj")
20
+ manager.remove(game_object)
21
+ expect(manager.instance_variable_get(:@game_objects).size).to be(0)
22
+ end
23
+
24
+ it "starts a gameobject when created if manager alread has started" do
25
+ manager = SK::GameObjectManager.new
26
+ manager.start
27
+ expect_any_instance_of(SK::GameObject).to receive(:start)
28
+ obj = manager.create "obj"
29
+ end
30
+
31
+ it "generates a unique id for all new game_objects created" do
32
+ manager = SK::GameObjectManager.new
33
+ expect(manager.create("obj_1").id).to eq(1)
34
+ expect(manager.create("obj_2").id).to eq(2)
35
+ expect(manager.create("obj_3").id).to eq(3)
36
+ expect(manager.create("obj_4").id).to eq(4)
37
+ end
38
+
39
+ it "contains the game_object after calling create" do
40
+ manager = SK::GameObjectManager.new
41
+ manager.create("my_obj")
42
+ expect(manager.instance_variable_get(:@game_objects).size).to eq(1)
43
+ end
44
+
45
+ it "can be updated" do
46
+ expect(SK::GameObjectManager.new).to respond_to(:update).with(1).argument
47
+ end
48
+
49
+ it "can be drawn with a context" do
50
+ expect(SK::GameObjectManager.new).to respond_to(:draw).with(1).argument
51
+ end
52
+
53
+ it "starts all gameobjects when calling start" do
54
+ manager = SK::GameObjectManager.new
55
+ obj = manager.create("my_obj")
56
+ expect(obj).to receive(:start)
57
+ manager.start
58
+ end
59
+
60
+ it "updates all gameobjects when calling update" do
61
+ manager = SK::GameObjectManager.new
62
+ obj = manager.create("my_obj")
63
+ expect(obj).to receive(:update).with(16.0)
64
+ manager.update 16.0
65
+ end
66
+
67
+ it "draws all gameobjects in order of sorting layer" do
68
+ manager = SK::GameObjectManager.new
69
+
70
+ foreground_object = manager.create("fg")
71
+ fg_component = SK::Component.new()
72
+ fg_component.layer = 1
73
+ foreground_object.add_component fg_component
74
+
75
+ background_object = manager.create("bg")
76
+ bg_component = SK::Component.new()
77
+ bg_component.layer = 0
78
+ background_object.add_component bg_component
79
+
80
+ context = "context"
81
+
82
+ expect(bg_component).to receive(:draw).ordered
83
+ expect(fg_component).to receive(:draw).ordered
84
+
85
+ manager.draw context
86
+ end
87
+
88
+ it "draws all gameobjects in order of sorting layer and order in layer" do
89
+ manager = SK::GameObjectManager.new
90
+
91
+ foreground_object = manager.create("fg")
92
+ fg_component = SK::Component.new()
93
+ fg_component.layer = 1
94
+ foreground_object.add_component fg_component
95
+
96
+ background_object = manager.create("bg")
97
+ bg_component = SK::Component.new()
98
+ bg_component.layer = 0
99
+ bg_component.order_in_layer = 2
100
+ bg_component2 = SK::Component.new()
101
+ bg_component2.layer = 0
102
+ bg_component2.order_in_layer = 3
103
+ background_object.add_component bg_component
104
+ background_object.add_component bg_component2
105
+
106
+ context = "context"
107
+
108
+ expect(bg_component).to receive(:draw).ordered
109
+ expect(bg_component2).to receive(:draw).ordered
110
+
111
+ manager.draw context
112
+ end
113
+ end
@@ -0,0 +1,110 @@
1
+ require 'spec_helper'
2
+
3
+ class ConcreteComponent < SK::Component
4
+ end
5
+
6
+ describe SK::GameObject do
7
+
8
+ describe "Parent-Child relationship" do
9
+ it "can have a parent" do
10
+ expect(SK::GameObject.new("name", 0)).to respond_to(:parent)
11
+ end
12
+
13
+ it "can get parent" do
14
+ obj = SK::GameObject.new "obj", 0
15
+ parent = SK::GameObject.new "parent", 1
16
+ obj.instance_variable_set(:@parent, parent)
17
+ expect(obj.parent).to be(parent)
18
+ end
19
+
20
+ it "can not set parent" #do
21
+ # expect(SK::GameObject.new("obj", 0).parent = "").to raise(Exception)
22
+ #end
23
+
24
+ it "can be without parent" do
25
+ expect(SK::GameObject.new("obj", 0).parent).to be_nil
26
+ end
27
+
28
+ it "can add children" do
29
+ obj = SK::GameObject.new "obj", 0
30
+ parent = SK::GameObject.new "parent", 1
31
+ parent.add_child obj
32
+ expect(obj.parent).to be(parent)
33
+ end
34
+
35
+ it "can list children" do
36
+ parent = SK::GameObject.new "parent", 1
37
+ 10.times do
38
+ parent.add_child(SK::GameObject.new("obj", 0))
39
+ end
40
+ expect(parent.children.size).to be(10)
41
+ end
42
+
43
+ it "removes a child from parent list when child is added to another parent" do
44
+ parent1 = SK::GameObject.new "parent1", 1
45
+ parent2 = SK::GameObject.new "parent2", 2
46
+ child = SK::GameObject.new("obj", 3)
47
+ parent1.add_child child
48
+ expect(child.parent).to be(parent1)
49
+ parent2.add_child child
50
+ expect(child.parent).to be(parent2)
51
+ expect(parent1.children.size).to eq(0)
52
+ end
53
+ end
54
+
55
+ it "is created with a name and an id" do
56
+ expect(SK::GameObject).to respond_to(:new).with(2).arguments
57
+ end
58
+
59
+ it "has a transform" do
60
+ expect(SK::GameObject.new("name", 0).transform).to be_a(SK::Transform)
61
+ end
62
+
63
+ it "can be updated" do
64
+ expect(SK::GameObject.new("name", 0)).to respond_to(:update).with(1).argument
65
+ end
66
+
67
+ it "can be started" do
68
+ expect(SK::GameObject.new("name", 0)).to respond_to(:start).with(0).arguments
69
+ end
70
+
71
+ it "can add components" do
72
+ expect(SK::GameObject.new("name", 0)).to respond_to(:add_component).with(1).argument
73
+ end
74
+
75
+ it "can remove components" do
76
+ expect(SK::GameObject.new("name", 0)).to respond_to(:remove_component).with(1).argument
77
+ end
78
+
79
+ it "can get a component by type" do
80
+ game_object = SK::GameObject.new "name", 0
81
+ component = ConcreteComponent.new
82
+ game_object.add_component component
83
+ expect(game_object.get_component(ConcreteComponent)).to be(component)
84
+ end
85
+
86
+ it "can get a multiple components by type" do
87
+ game_object = SK::GameObject.new "name", 0
88
+ component = ConcreteComponent.new
89
+ component2 = ConcreteComponent.new
90
+ game_object.add_component component
91
+ game_object.add_component component2
92
+ expect(game_object.get_components(ConcreteComponent)).to eq([component, component2])
93
+ end
94
+
95
+ it "starts all components when calling start" do
96
+ game_object = SK::GameObject.new "name", 0
97
+ component = ConcreteComponent.new
98
+ game_object.add_component component
99
+ expect(component).to receive(:start)
100
+ game_object.start
101
+ end
102
+
103
+ it "updates all components when calling update" do
104
+ game_object = SK::GameObject.new "name", 0
105
+ component = ConcreteComponent.new
106
+ game_object.add_component component
107
+ expect(component).to receive(:update).with(16.0)
108
+ game_object.update 16.0
109
+ end
110
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe SK::Matrix do
4
+
5
+ it "can be translated" do
6
+ expect(SK::Matrix).to respond_to(:create_translation).with(2).arguments
7
+ end
8
+
9
+ it "can be rotated" do
10
+ expect(SK::Matrix).to respond_to(:create_rotation).with(1).argument
11
+ end
12
+
13
+ it "can be scaled" do
14
+ expect(SK::Matrix).to respond_to(:create_scale).with(2).arguments
15
+ end
16
+
17
+ it "can create an identity matrix" do
18
+ expect(SK::Matrix).to respond_to(:identity)
19
+ end
20
+
21
+ it "can be decomposed" do
22
+ expect(SK::Matrix.new).to respond_to(:decompose)
23
+ end
24
+
25
+ it "translates from one position to another properly" #do
26
+ # target = SK::Vec2.new(100, 100)
27
+ # matrix = SK::Matrix.create_translation(target.x, target.y)
28
+ # decomposition = matrix.decompose
29
+ # expect(decomposition.position.x).to eq(100)
30
+ # end
31
+
32
+ it "can multiply a transform"# do
33
+ # source = SK::Vec2.new(50, 100)
34
+ # target = SK::Vec2.new(100, 100)
35
+ # matrix = SK::Matrix.create_translation(source.x, source.y) *
36
+ # SK::Matrix.create_translation(target.x, target.y)
37
+ # decomposition = matrix.decompose
38
+ # expect(decomposition.position.x).to eq(150)
39
+ # expect(decomposition.position.y).to eq(200)
40
+ # end
41
+
42
+ it "can rotate a transform" #do
43
+ # matrix = SK::Matrix.create_rotation(90)
44
+ # decomposition = matrix.decompose
45
+ # expect(decomposition.rotation).to eq(90)
46
+
47
+ # end
48
+ end
49
+
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'gosu'
3
+
4
+ describe SK::Transform do
5
+
6
+ it "has a position" do
7
+ expect(SK::Transform.new.position).to be_a(SK::Vec2)
8
+ end
9
+
10
+ it "has a rotation" do
11
+ expect(SK::Transform.new.rotation).to be_a(Float)
12
+ end
13
+
14
+ it "has a scale" do
15
+ expect(SK::Transform.new.scale).to be_a(SK::Vec2)
16
+ end
17
+
18
+ it "is initialized with a scale of 1.0" do
19
+ scale = SK::Transform.new.scale
20
+ expect(scale.x).to eq(1.0)
21
+ expect(scale.y).to eq(1.0)
22
+ end
23
+
24
+ it "can be multiplied as a matrix" #do
25
+ # transform = Shirokuro::Transform.new#
26
+ # expect(transform.matrix).to be_a(Matrix)
27
+ # end
28
+ end
@@ -0,0 +1,49 @@
1
+ require 'spec_helper'
2
+
3
+ describe SK::Vec2 do
4
+
5
+ it "is a two component vector" do
6
+ expect(SK::Vec2.new).to respond_to(:x)
7
+ expect(SK::Vec2.new).to respond_to(:y)
8
+ end
9
+
10
+ it "can be initialized with x, y parameters" do
11
+ expect(SK::Vec2).to respond_to(:new).with(2).arguments
12
+ end
13
+
14
+ it "can be added" do
15
+ added = SK::Vec2.new(100, 100) + SK::Vec2.new(50, -50)
16
+ expect(added.x).to eq(150)
17
+ expect(added.y).to eq(50)
18
+ end
19
+
20
+ it "can be subtracted" do
21
+ subtracted = SK::Vec2.new(100, 100) - SK::Vec2.new(50, 25)
22
+ expect(subtracted.x).to eq(50)
23
+ expect(subtracted.y).to eq(75)
24
+ end
25
+
26
+ it "can be multiplied" do
27
+ multiplied = SK::Vec2.new(100, 100) * SK::Vec2.new(2, 3)
28
+ expect(multiplied.x).to eq(200)
29
+ expect(multiplied.y).to eq(300)
30
+ end
31
+
32
+ it "can be divided" do
33
+ divided = SK::Vec2.new(100, 100) / SK::Vec2.new(2, 4)
34
+ expect(divided.x).to eq(50)
35
+ expect(divided.y).to eq(25)
36
+ end
37
+
38
+ it "can be multiplied using a scalar" do
39
+ multiplied = SK::Vec2.new(100, 150) * 2.0
40
+ expect(multiplied.x).to eq(200)
41
+ expect(multiplied.y).to eq(300)
42
+ end
43
+
44
+ it "can be devided using a scalar" do
45
+ divided = SK::Vec2.new(400, 600) / 2.0
46
+ expect(divided.x).to eq(200)
47
+ expect(divided.y).to eq(300)
48
+ end
49
+ end
@@ -0,0 +1,12 @@
1
+ require_relative '../lib/shirokuro'
2
+
3
+ RSpec.configure do |config|
4
+ # Use color in STDOUT
5
+ config.color = true
6
+
7
+ # Use color not only in STDOUT but also in pagers and files
8
+ config.tty = true
9
+
10
+ # Use the specified formatter
11
+ config.formatter = :documentation # :progress, :html, :textmate
12
+ end
metadata ADDED
@@ -0,0 +1,223 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: shirokuro
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - erikskogl
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-04-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gosu
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: chipmunk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: ruby-opengl
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.6'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.6'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: guard-rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: Gosu helper lib
126
+ email:
127
+ - erikskoglund88@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - ".gitignore"
133
+ - ".rspec"
134
+ - Gemfile
135
+ - Guardfile
136
+ - LICENSE.txt
137
+ - README.md
138
+ - Rakefile
139
+ - examples/audio/main.rb
140
+ - examples/audio/run.sh
141
+ - examples/layers_and_sorting/main.rb
142
+ - examples/layers_and_sorting/run.sh
143
+ - examples/physx/main.rb
144
+ - examples/physx/run.sh
145
+ - examples/shared/content/audio/boing.ogg
146
+ - examples/shared/content/audio/song_1.ogg
147
+ - examples/shared/content/gfx/character_sprite.png
148
+ - examples/shared/content/gfx/tileset.png
149
+ - examples/shared/content/maps/stage2.json
150
+ - examples/sprite/main.rb
151
+ - examples/sprite/run.sh
152
+ - examples/sprite_animation/main.rb
153
+ - examples/sprite_animation/run.sh
154
+ - examples/tmx_map/main.rb
155
+ - examples/tmx_map/run.sh
156
+ - lib/shirokuro.rb
157
+ - lib/shirokuro/audio/audio_manager.rb
158
+ - lib/shirokuro/content/content_manager.rb
159
+ - lib/shirokuro/ecs/component.rb
160
+ - lib/shirokuro/ecs/game_object.rb
161
+ - lib/shirokuro/ecs/game_object_manager.rb
162
+ - lib/shirokuro/ecs/id_generator.rb
163
+ - lib/shirokuro/math/matrix.rb
164
+ - lib/shirokuro/math/transform.rb
165
+ - lib/shirokuro/math/vec2.rb
166
+ - lib/shirokuro/physics/physics.rb
167
+ - lib/shirokuro/standard_components/animations/animation.rb
168
+ - lib/shirokuro/standard_components/animations/animation_component.rb
169
+ - lib/shirokuro/standard_components/cameras/camera.rb
170
+ - lib/shirokuro/standard_components/maps/map_component.rb
171
+ - lib/shirokuro/standard_components/physics/box_collider.rb
172
+ - lib/shirokuro/standard_components/physics/circle_collider.rb
173
+ - lib/shirokuro/standard_components/physics/polygon_collider.rb
174
+ - lib/shirokuro/standard_components/physics/rigid_body.rb
175
+ - lib/shirokuro/standard_components/rendering/animation_sprite_renderer.rb
176
+ - lib/shirokuro/standard_components/rendering/map_renderer.rb
177
+ - lib/shirokuro/standard_components/rendering/shape_renderer.rb
178
+ - lib/shirokuro/standard_components/rendering/sprite_renderer.rb
179
+ - lib/shirokuro/standard_components/tmx/tmx_map.rb
180
+ - lib/shirokuro/standard_components/tmx/tmx_map_layer.rb
181
+ - lib/shirokuro/standard_components/tmx/tmx_map_layer_object.rb
182
+ - lib/shirokuro/standard_components/transformation/rotation.rb
183
+ - lib/shirokuro/version.rb
184
+ - shirokuro.gemspec
185
+ - spec/shirokuro/ecs/component_spec.rb
186
+ - spec/shirokuro/ecs/game_object_manager_spec.rb
187
+ - spec/shirokuro/ecs/game_object_spec.rb
188
+ - spec/shirokuro/math/matrix_spec.rb
189
+ - spec/shirokuro/math/transform_spec.rb
190
+ - spec/shirokuro/math/vec2_spec.rb
191
+ - spec/spec_helper.rb
192
+ homepage: ''
193
+ licenses:
194
+ - MIT
195
+ metadata: {}
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ required_rubygems_version: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - ">="
208
+ - !ruby/object:Gem::Version
209
+ version: '0'
210
+ requirements: []
211
+ rubyforge_project:
212
+ rubygems_version: 2.2.2
213
+ signing_key:
214
+ specification_version: 4
215
+ summary: Gosu helper lib
216
+ test_files:
217
+ - spec/shirokuro/ecs/component_spec.rb
218
+ - spec/shirokuro/ecs/game_object_manager_spec.rb
219
+ - spec/shirokuro/ecs/game_object_spec.rb
220
+ - spec/shirokuro/math/matrix_spec.rb
221
+ - spec/shirokuro/math/transform_spec.rb
222
+ - spec/shirokuro/math/vec2_spec.rb
223
+ - spec/spec_helper.rb