entityjs 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +18 -14
- data/entityjs.gemspec +1 -0
- data/lib/entityjs/assets.rb +13 -163
- data/lib/entityjs/command.rb +5 -2
- data/lib/entityjs/commands/build.rb +63 -23
- data/lib/entityjs/commands/eunit.rb +44 -0
- data/lib/entityjs/commands/release.rb +1 -1
- data/lib/entityjs/commands/server.rb +19 -4
- data/lib/entityjs/compile.rb +152 -0
- data/lib/entityjs/config.rb +8 -0
- data/lib/entityjs/dirc.rb +70 -17
- data/lib/entityjs/page.rb +106 -0
- data/lib/entityjs/parsers/parse_coffee.rb +12 -0
- data/lib/entityjs/version.rb +1 -1
- data/lib/entityjs.rb +18 -4
- data/public/qunit/qunit.css +9 -3
- data/public/qunit/qunit.entity.js +113 -31
- data/public/qunit/qunit.js +296 -235
- data/public/qunit/qunit.mock.js +54 -2
- data/public/tests.html +0 -15
- data/spec/javascripts/src/cycle/tween_spec.js +59 -0
- data/spec/javascripts/src/display/screen_spec.js +0 -15
- data/spec/javascripts/src/display/text_spec.js +4 -0
- data/spec/javascripts/src/input/mouse_spec.js +18 -18
- data/spec/javascripts/src/input/preventdefault_spec.js +14 -0
- data/spec/javascripts/src/math/drag_spec.js +2 -2
- data/spec/javascripts/src/math/hit_spec.js +24 -0
- data/spec/javascripts/src/math/point_spec.js +3 -3
- data/spec/javascripts/src/math/tile_spec.js +1 -1
- data/spec/javascripts/src/media/sound_spec.js +1 -1
- data/spec/javascripts/src/pattern/automap_spec.js +3 -3
- data/spec/javascripts/src/pattern/flicker_spec.js +2 -1
- data/spec/javascripts/src/util/random_spec.js +17 -0
- data/spec/javascripts/src/util/scene_spec.js +15 -0
- data/spec/lib/entityjs/assets_spec.rb +2 -201
- data/spec/lib/entityjs/commands/build_spec.rb +18 -5
- data/spec/lib/entityjs/commands/eunit_spec.rb +18 -0
- data/spec/lib/entityjs/commands/release_spec.rb +2 -0
- data/spec/lib/entityjs/compile_spec.rb +204 -0
- data/spec/lib/entityjs/dirc_spec.rb +8 -4
- data/spec/lib/entityjs/page_spec.rb +59 -0
- data/spec/support/factories.rb +0 -2
- data/src/core/entity.js +4 -18
- data/src/core/query.js +1 -1
- data/src/core/re.js +6 -6
- data/src/core/system.js +17 -12
- data/src/cycle/tween.js +93 -31
- data/src/display/align.js +11 -6
- data/src/display/circle.js +5 -4
- data/src/display/imgtext.js +33 -22
- data/src/display/screen.js +0 -8
- data/src/display/text.js +37 -4
- data/src/input/keyboard.js +15 -5
- data/src/input/mouse.js +15 -25
- data/src/input/preventdefault.js +11 -0
- data/src/math/body.js +35 -16
- data/src/math/drag.js +2 -2
- data/src/math/force.js +2 -2
- data/src/math/hit.js +15 -6
- data/src/math/hitmap.js +6 -6
- data/src/math/point.js +1 -1
- data/src/math/tile.js +22 -17
- data/src/media/sound.js +1 -1
- data/src/pattern/automap.js +16 -27
- data/src/pattern/flicker.js +9 -5
- data/src/util/random.js +4 -0
- data/src/util/scene.js +2 -6
- data/templates/arrow_keys/scripts/{display → displays}/arrow.js +0 -0
- data/templates/arrow_keys/scripts/{input → inputs}/controls.js +0 -0
- data/templates/arrow_keys/tests/{display → displays}/arrow_test.js +1 -1
- data/templates/arrow_keys/tests/{input → inputs}/controls_test.js +0 -0
- data/templates/arrow_keys/tests/scenes/load_test.js +2 -0
- data/templates/{blank → circle}/config.yml +0 -0
- data/templates/{blank → circle}/readme.txt +0 -0
- data/templates/circle/scripts/init.js +7 -0
- data/templates/circle/scripts/scenes/home.js +62 -0
- data/templates/circle/scripts/scenes/load.js +11 -0
- data/templates/circle/tests/scenes/home_test.js +29 -0
- data/templates/circle/tests/scenes/load_test.js +15 -0
- data/templates/platform/config.yml +2 -1
- data/templates/platform/readme.txt +15 -16
- data/templates/platform/scripts/{display → displays}/bit.js +0 -0
- data/templates/platform/scripts/{display → displays}/hero.js +0 -0
- data/templates/platform/scripts/{display → displays}/tile.js +0 -0
- data/templates/platform/scripts/{display → displays}/tsprite.js +0 -0
- data/templates/platform/{assets → scripts}/levels/level1.tmx +0 -0
- data/templates/platform/scripts/{util → utils}/counter.js +0 -0
- data/templates/platform/scripts/{util → utils}/level.js +0 -0
- data/templates/platform/tests/{display → displays}/bit_test.js +1 -1
- data/templates/platform/tests/displays/hero_test.js +73 -0
- data/templates/platform/tests/{display → displays}/tile_test.js +1 -1
- data/templates/platform/tests/displays/tsprite_test.js +8 -0
- data/templates/platform/tests/items/coin_test.js +10 -10
- data/templates/platform/tests/items/item_test.js +9 -9
- data/templates/platform/tests/items/spring_test.js +3 -3
- data/templates/platform/tests/scenes/load_test.js +2 -1
- data/templates/platform/tests/{util → utils}/counter_test.js +2 -2
- data/templates/platform/tests/{util → utils}/level_test.js +3 -0
- data/templates/pong/config.yml +22 -0
- data/templates/pong/readme.txt +3 -0
- data/templates/pong/scripts/controls/ai.js +30 -0
- data/templates/pong/scripts/controls/arena.js +33 -0
- data/templates/pong/scripts/controls/hitmap.js +54 -0
- data/templates/pong/scripts/controls/player.js +24 -0
- data/templates/pong/scripts/controls/twoarena.js +14 -0
- data/templates/pong/scripts/displays/ball.js +29 -0
- data/templates/pong/scripts/displays/counter.js +22 -0
- data/templates/pong/scripts/displays/paddle.js +22 -0
- data/templates/pong/scripts/init.js +9 -0
- data/templates/pong/scripts/scenes/game.js +61 -0
- data/templates/pong/scripts/scenes/home.js +55 -0
- data/templates/pong/scripts/scenes/over.js +29 -0
- data/templates/pong/tests/controls/ai_test.js +34 -0
- data/templates/pong/tests/controls/arena_test.js +20 -0
- data/templates/pong/tests/controls/hitmap_test.js +89 -0
- data/templates/pong/tests/controls/player_test.js +25 -0
- data/templates/pong/tests/controls/twoarena_test.js +7 -0
- data/templates/pong/tests/displays/ball_test.js +10 -0
- data/templates/pong/tests/displays/counter_test.js +13 -0
- data/templates/pong/tests/displays/paddle_test.js +17 -0
- data/templates/pong/tests/scenes/game_test.js +16 -0
- data/templates/pong/tests/scenes/home_test.js +30 -0
- data/templates/pong/tests/scenes/over_test.js +16 -0
- data/templates/tiltmaze/config.yml +25 -0
- data/templates/tiltmaze/readme.txt +79 -0
- data/templates/tiltmaze/scripts/displays/ball.js +78 -0
- data/templates/tiltmaze/scripts/displays/target.js +13 -0
- data/templates/tiltmaze/scripts/displays/tile.js +2 -0
- data/templates/tiltmaze/scripts/init.js +7 -0
- data/templates/tiltmaze/scripts/levels/level1.json +14 -0
- data/templates/tiltmaze/scripts/levels/level2.json +14 -0
- data/templates/tiltmaze/scripts/levels/level3.json +14 -0
- data/templates/tiltmaze/scripts/levels/level4.json +15 -0
- data/templates/tiltmaze/scripts/levels/level5.json +18 -0
- data/templates/tiltmaze/scripts/scenes/game.js +56 -0
- data/templates/tiltmaze/scripts/scenes/home.js +24 -0
- data/templates/tiltmaze/scripts/structs/level.js +82 -0
- data/templates/tiltmaze/scripts/tiles/walltile.js +147 -0
- data/templates/tiltmaze/tests/displays/ball_test.js +67 -0
- data/templates/tiltmaze/tests/displays/target_test.js +8 -0
- data/templates/tiltmaze/tests/factories.js +38 -0
- data/templates/tiltmaze/tests/scenes/game_test.js +59 -0
- data/templates/tiltmaze/tests/scenes/home_test.js +7 -0
- data/templates/tiltmaze/tests/structs/level_test.js +44 -0
- data/templates/tiltmaze/tests/tiles/walltile_test.js +36 -0
- metadata +106 -33
- data/templates/platform/tests/display/hero_test.js +0 -73
- data/templates/platform/tests/display/tsprite_test.js +0 -8
@@ -7,9 +7,6 @@ describe 'Assets' do
|
|
7
7
|
|
8
8
|
files = factory(:assets)
|
9
9
|
|
10
|
-
@data_file = Entityjs::Config.assets_folder+'/blag/bob.json'
|
11
|
-
files.push @data_file
|
12
|
-
|
13
10
|
@sounds_file = Entityjs::Config.sounds_folder+'/fold/secret1.mp3'
|
14
11
|
files.push @sounds_file
|
15
12
|
|
@@ -22,215 +19,19 @@ describe 'Assets' do
|
|
22
19
|
end
|
23
20
|
|
24
21
|
it 'should return all images' do
|
25
|
-
|
22
|
+
#TODO: fix up tests..
|
26
23
|
r = Entityjs::Assets.search('images')
|
27
|
-
r.each do |i|
|
28
|
-
i.should match /images/
|
29
|
-
i.should_not match /levels|sounds|assets/
|
30
|
-
i.should match /^*\.(png|gif|jpg|jpeg)$/i
|
31
|
-
end
|
32
24
|
|
33
25
|
end
|
34
26
|
|
35
27
|
it 'should return all sounds' do
|
36
28
|
|
37
29
|
r = Entityjs::Assets.search('sounds')
|
38
|
-
r.each do |i|
|
39
|
-
i.should match /sounds/
|
40
|
-
i.should_not match /levels|images|assets/
|
41
|
-
i.should match /^*\.(mp3|aac|wav|ogg)$/i
|
42
|
-
end
|
43
30
|
|
44
31
|
r.should include(@sounds_file.gsub('assets/', ''))
|
45
32
|
|
46
33
|
end
|
47
34
|
|
48
|
-
it 'should return all datas'
|
49
|
-
|
50
|
-
r = Entityjs::Assets.search('*')
|
51
|
-
r.each do |i|
|
52
|
-
i.should match /levels|blag/
|
53
|
-
i.should_not match /sounds|images|assets/
|
54
|
-
i.should match /^*\.(#{Entityjs::Assets.valid_datas.join('|')})$/i
|
55
|
-
end
|
56
|
-
|
57
|
-
r.should include(@data_file.gsub('assets/', ''))
|
58
|
-
end
|
59
|
-
|
60
|
-
it 'should generate sounds to js' do
|
61
|
-
r = Entityjs::Assets.sounds_to_js
|
62
|
-
r.should match /\[*\]/
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
it 'should generate images to js' do
|
67
|
-
r = Entityjs::Assets.images_to_js
|
68
|
-
r.should match /\[*\]/
|
69
|
-
|
70
|
-
end
|
71
|
-
|
72
|
-
it 'should generate datas to js' do
|
73
|
-
r = Entityjs::Assets.datas_to_js
|
74
|
-
r.should match /re\.e\('/
|
75
|
-
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'should convert xml to json' do
|
79
|
-
|
80
|
-
File.stub(:extname).and_return('.xml')
|
81
|
-
IO.stub(:read).and_return('<?xml ?><root><alice sid="4"><bob sid="1">charlie</bob><bob sid="2">david</bob></alice></root>')
|
82
|
-
|
83
|
-
r = Entityjs::Assets.file_to_json('convert.xml')
|
84
|
-
|
85
|
-
r.should match /alice/
|
86
|
-
r.should_not match /root/
|
87
|
-
r.should_not match /<\?xml.*\?>/
|
88
|
-
end
|
89
|
-
|
90
|
-
it 'should convert tmx to json' do
|
91
|
-
File.stub(:extname).and_return('.tmx')
|
92
|
-
IO.stub(:read).and_return(%q(
|
93
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
94
|
-
<map version="1.0" orientation="orthogonal" width="37" height="15" tilewidth="25" tileheight="25">
|
95
|
-
<tileset firstgid="1" name="Sheet" tilewidth="25" tileheight="25">
|
96
|
-
<image source="tiles.png" width="200" height="25"/>
|
97
|
-
</tileset>
|
98
|
-
<tileset firstgid="9" name="Objects" tilewidth="25" tileheight="25">
|
99
|
-
<image source="items.png" width="250" height="50"/>
|
100
|
-
</tileset>
|
101
|
-
<layer name="Back" width="37" height="15" opacity="0.43">
|
102
|
-
<data encoding="csv">
|
103
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
104
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
105
|
-
0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
106
|
-
0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,6,2,2,2,5,0,0,0,0,0,0,8,8,0,
|
107
|
-
0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
108
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
109
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,3,0,0,0,8,0,0,0,0,0,
|
110
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
111
|
-
0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
112
|
-
0,0,0,0,0,6,2,2,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
113
|
-
0,0,0,6,2,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,6,2,5,
|
114
|
-
0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,1,1,3,
|
115
|
-
0,6,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,6,1,1,3,
|
116
|
-
0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,6,1,1,1,3,
|
117
|
-
0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,4,1,1,1,3
|
118
|
-
</data>
|
119
|
-
</layer>
|
120
|
-
<layer name="Front" width="37" height="15">
|
121
|
-
<data encoding="csv">
|
122
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
123
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
124
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
125
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
126
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
127
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,
|
128
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
129
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
130
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,
|
131
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
132
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
133
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,0,
|
134
|
-
2,2,2,2,5,0,0,0,0,0,6,2,2,5,0,0,0,0,0,0,0,6,2,2,1,1,2,2,2,5,0,0,0,0,6,2,2,
|
135
|
-
1,1,1,1,3,0,0,0,0,6,1,1,1,1,5,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,5,0,0,0,4,1,1,
|
136
|
-
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
137
|
-
</data>
|
138
|
-
</layer>
|
139
|
-
<layer name="Objects" width="37" height="15">
|
140
|
-
<data encoding="csv">
|
141
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
142
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
143
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
144
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
145
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
146
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
147
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,
|
148
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,
|
149
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
|
150
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,23,0,0,0,0,0,
|
151
|
-
0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
|
152
|
-
0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,23,0,0,0,23,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
|
153
|
-
0,0,0,0,0,16,16,16,16,16,0,0,0,0,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,
|
154
|
-
0,0,0,0,0,15,15,15,15,0,0,0,0,0,0,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,15,15,15,0,0,0,
|
155
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
156
|
-
</data>
|
157
|
-
</layer>
|
158
|
-
</map>
|
159
|
-
))
|
160
|
-
|
161
|
-
r = Entityjs::Assets.file_to_json('map.tmx')
|
162
|
-
|
163
|
-
r.should_not match /map/
|
164
|
-
r.should match /"\$":\[\[0/
|
165
|
-
end
|
166
|
-
|
167
|
-
it 'should tmx should convert to json' do
|
168
|
-
File.stub(:extname).and_return('.tmx')
|
169
|
-
IO.stub(:read).and_return(%q(<?xml version="1.0" encoding="UTF-8"?>
|
170
|
-
<map version="1.0" orientation="orthogonal" width="40" height="20" tilewidth="25" tileheight="25">
|
171
|
-
<tileset firstgid="1" name="tiles" tilewidth="25" tileheight="25">
|
172
|
-
<image source="../images/tiles.png" width="200" height="25"/>
|
173
|
-
</tileset>
|
174
|
-
<layer name="Tile Layer 1" width="40" height="20">
|
175
|
-
<data encoding="csv">
|
176
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
177
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
178
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
179
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
180
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
181
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
182
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
183
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
184
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
185
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
186
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
187
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
188
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
189
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
190
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
191
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
192
|
-
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
193
|
-
2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
194
|
-
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
195
|
-
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
196
|
-
</data>
|
197
|
-
</layer>
|
198
|
-
<objectgroup name="Hero" width="40" height="20">
|
199
|
-
<object name="hero" x="43" y="356"/>
|
200
|
-
</objectgroup>
|
201
|
-
</map>))
|
202
|
-
|
203
|
-
|
204
|
-
r = Entityjs::Assets.file_to_json('map.tmx')
|
205
|
-
|
206
|
-
r.should_not match /map/
|
207
|
-
r.should match /"\$":\[\[0/
|
208
|
-
end
|
209
|
-
|
210
|
-
it 'should return object for invalid xml' do
|
211
|
-
xml = '<sdf>'
|
212
|
-
|
213
|
-
lambda {
|
214
|
-
Entityjs::Assets.data_to_json('sdf.xml', xml)
|
215
|
-
}.should raise_error
|
216
|
-
end
|
217
|
-
|
218
|
-
it 'should return json from invalid tmx' do
|
219
|
-
tmx = "<root><bob>10</bob></root>"
|
220
|
-
|
221
|
-
Entityjs::Assets.data_to_json('lsdf.tmx', tmx).should == '{"bob":{"$":10}}'
|
222
|
-
end
|
223
|
-
|
224
|
-
it 'should convert blank tmx to json' do
|
225
|
-
tmx = ''
|
226
|
-
|
227
|
-
Entityjs::Assets.data_to_json('level.tmx', tmx).should == '{}'
|
228
|
-
end
|
229
|
-
|
230
|
-
it 'should generate to js' do
|
231
|
-
r = Entityjs::Assets.to_js
|
232
|
-
r.should match /re\.assets/
|
233
|
-
|
234
|
-
end
|
35
|
+
it 'should return all datas'
|
235
36
|
|
236
37
|
end
|
@@ -22,23 +22,36 @@ describe 'build' do
|
|
22
22
|
|
23
23
|
dir = Entityjs::Config.builds_folder+"/"+name
|
24
24
|
|
25
|
-
|
25
|
+
File.directory?(dir).should == true
|
26
26
|
|
27
27
|
Dir.chdir(dir) do
|
28
|
+
File.file?('game.min.js').should == true
|
28
29
|
contents = IO.read('game.min.js')
|
29
|
-
|
30
|
+
contents.should match /re\.canvas/
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
34
|
+
it 'should generate sounds to js' do
|
35
|
+
r = Entityjs::Build.sounds_to_js
|
36
|
+
r.should match /\[.*\]/
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should generate images to js' do
|
41
|
+
r = Entityjs::Build.images_to_js
|
42
|
+
r.should match /\[.*\]/
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
|
33
47
|
it 'should build a throwthegame' do
|
34
48
|
#compile given source
|
35
|
-
images = "['images/sff.png', 'images/sddd.png']"
|
36
49
|
sounds = "[]"
|
37
|
-
|
50
|
+
images = "['blah.png']"
|
38
51
|
canvas = 'game-canvas'
|
39
52
|
scripts = "re.ready(function(){});"
|
40
53
|
|
41
|
-
scripts += Entityjs::
|
54
|
+
scripts += Entityjs::Build.js_config('', images, sounds, canvas)
|
42
55
|
|
43
56
|
#min
|
44
57
|
min = Entityjs::Build.minify(scripts)
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Eunit" do
|
4
|
+
|
5
|
+
it 'should compile unit test src' do
|
6
|
+
name = Entityjs::Eunit.eunit_name
|
7
|
+
|
8
|
+
Entityjs::Eunit.generate().should == 0
|
9
|
+
|
10
|
+
File.file?(name).should == true
|
11
|
+
|
12
|
+
contents = IO.read(name)
|
13
|
+
|
14
|
+
contents.should match /factory/
|
15
|
+
contents.should match /qunit/i
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
@@ -0,0 +1,204 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Compile' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
setup_mygame
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
teardown_mygame
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should ignore js to js' do
|
14
|
+
|
15
|
+
js = 're.e("test");'
|
16
|
+
|
17
|
+
out = Entityjs::Compile.script_to_js('script.js', js)
|
18
|
+
|
19
|
+
out.should == js
|
20
|
+
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should ignore file with no extension' do
|
24
|
+
|
25
|
+
js = 're.e("test");'
|
26
|
+
|
27
|
+
out = Entityjs::Compile.script_to_js('script', js)
|
28
|
+
|
29
|
+
out.should == js
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should convert coffee script to js' do
|
33
|
+
coffee = 'square = (x) -> x * x'
|
34
|
+
|
35
|
+
js = Entityjs::Compile.script_to_js('blah.coffee', coffee)
|
36
|
+
|
37
|
+
js.should == "var square;\n\nsquare = function(x) {\n return x * x;\n};\n"
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'should convert to entity' do
|
41
|
+
|
42
|
+
data = '{"ok":10}'
|
43
|
+
comps = ['levels', 'level1.json']
|
44
|
+
|
45
|
+
entity = Entityjs::Compile.to_entity(comps, data)
|
46
|
+
|
47
|
+
entity.should match /ok/
|
48
|
+
entity.should_not match /levels/
|
49
|
+
entity.should match /level/
|
50
|
+
entity.should match /level1\.json/
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'should convert xml to json' do
|
54
|
+
|
55
|
+
IO.stub(:read).and_return('<?xml ?><root><alice sid="4"><bob sid="1">charlie</bob><bob sid="2">david</bob></alice></root>')
|
56
|
+
|
57
|
+
r = Entityjs::Compile.script_to_js('convert.xml')
|
58
|
+
|
59
|
+
r.should match /alice/
|
60
|
+
r.should_not match /root/
|
61
|
+
r.should_not match /<\?xml.*\?>/
|
62
|
+
end
|
63
|
+
|
64
|
+
it 'should convert tmx to json' do
|
65
|
+
|
66
|
+
IO.stub(:read).and_return(%q(
|
67
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
68
|
+
<map version="1.0" orientation="orthogonal" width="37" height="15" tilewidth="25" tileheight="25">
|
69
|
+
<tileset firstgid="1" name="Sheet" tilewidth="25" tileheight="25">
|
70
|
+
<image source="tiles.png" width="200" height="25"/>
|
71
|
+
</tileset>
|
72
|
+
<tileset firstgid="9" name="Objects" tilewidth="25" tileheight="25">
|
73
|
+
<image source="items.png" width="250" height="50"/>
|
74
|
+
</tileset>
|
75
|
+
<layer name="Back" width="37" height="15" opacity="0.43">
|
76
|
+
<data encoding="csv">
|
77
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
78
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
79
|
+
0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
80
|
+
0,0,0,0,0,8,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,6,2,2,2,5,0,0,0,0,0,0,8,8,0,
|
81
|
+
0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
82
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
83
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,3,0,0,0,8,0,0,0,0,0,
|
84
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
85
|
+
0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
86
|
+
0,0,0,0,0,6,2,2,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,
|
87
|
+
0,0,0,6,2,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,6,2,5,
|
88
|
+
0,0,6,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,0,1,1,3,
|
89
|
+
0,6,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,0,6,1,1,3,
|
90
|
+
0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,6,1,1,1,3,
|
91
|
+
0,4,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1,1,1,3,0,0,0,0,4,1,1,1,3
|
92
|
+
</data>
|
93
|
+
</layer>
|
94
|
+
<layer name="Front" width="37" height="15">
|
95
|
+
<data encoding="csv">
|
96
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
97
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
98
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
99
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
100
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
101
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,
|
102
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
103
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
104
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,
|
105
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
106
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
107
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,5,0,0,0,0,0,0,0,0,0,0,0,
|
108
|
+
2,2,2,2,5,0,0,0,0,0,6,2,2,5,0,0,0,0,0,0,0,6,2,2,1,1,2,2,2,5,0,0,0,0,6,2,2,
|
109
|
+
1,1,1,1,3,0,0,0,0,6,1,1,1,1,5,0,0,0,0,0,0,4,1,1,1,1,1,1,1,1,5,0,0,0,4,1,1,
|
110
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
|
111
|
+
</data>
|
112
|
+
</layer>
|
113
|
+
<layer name="Objects" width="37" height="15">
|
114
|
+
<data encoding="csv">
|
115
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
116
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
117
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
118
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,20,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
119
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
120
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
121
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,0,0,0,
|
122
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,
|
123
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
|
124
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,23,0,0,0,0,0,
|
125
|
+
0,0,0,0,0,0,0,23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
|
126
|
+
0,0,0,0,0,0,0,0,0,0,0,0,21,0,0,23,0,0,0,23,0,0,0,0,0,0,0,0,19,0,0,0,0,0,0,0,0,
|
127
|
+
0,0,0,0,0,16,16,16,16,16,0,0,0,0,16,16,16,16,16,16,16,0,0,0,0,0,0,0,0,0,16,16,16,16,0,0,0,
|
128
|
+
0,0,0,0,0,15,15,15,15,0,0,0,0,0,0,15,15,15,15,15,15,0,0,0,0,0,0,0,0,0,0,15,15,15,0,0,0,
|
129
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
130
|
+
</data>
|
131
|
+
</layer>
|
132
|
+
</map>
|
133
|
+
))
|
134
|
+
|
135
|
+
r = Entityjs::Compile.script_to_js('blap.tmx')
|
136
|
+
|
137
|
+
r.should_not match /map/
|
138
|
+
r.should match /"\$":\[\[0/
|
139
|
+
end
|
140
|
+
|
141
|
+
it 'should tmx should convert to json' do
|
142
|
+
|
143
|
+
data = %q(<?xml version="1.0" encoding="UTF-8"?>
|
144
|
+
<map version="1.0" orientation="orthogonal" width="40" height="20" tilewidth="25" tileheight="25">
|
145
|
+
<tileset firstgid="1" name="tiles" tilewidth="25" tileheight="25">
|
146
|
+
<image source="../images/tiles.png" width="200" height="25"/>
|
147
|
+
</tileset>
|
148
|
+
<layer name="Tile Layer 1" width="40" height="20">
|
149
|
+
<data encoding="csv">
|
150
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
151
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
152
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
153
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
154
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
155
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
156
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
157
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
158
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
159
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
160
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
161
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
162
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
163
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
164
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
165
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
166
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
167
|
+
2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
168
|
+
1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
|
169
|
+
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
170
|
+
</data>
|
171
|
+
</layer>
|
172
|
+
<objectgroup name="Hero" width="40" height="20">
|
173
|
+
<object name="hero" x="43" y="356"/>
|
174
|
+
</objectgroup>
|
175
|
+
</map>)
|
176
|
+
|
177
|
+
|
178
|
+
r = Entityjs::Compile.script_to_js('level1.tmx', data)
|
179
|
+
|
180
|
+
r.should_not match /map/
|
181
|
+
r.should match /"\$":\[\[0/
|
182
|
+
end
|
183
|
+
|
184
|
+
it 'should return object for invalid xml' do
|
185
|
+
xml = '<sdf>'
|
186
|
+
|
187
|
+
lambda {
|
188
|
+
Entityjs::Compile.xml_to_json('sdf.xml', xml)
|
189
|
+
}.should raise_error
|
190
|
+
end
|
191
|
+
|
192
|
+
it 'should return json from invalid tmx' do
|
193
|
+
tmx = "<root><bob>10</bob></root>"
|
194
|
+
|
195
|
+
Entityjs::Compile.to_json('.tmx', tmx).should == '{"bob":{"$":10}}'
|
196
|
+
end
|
197
|
+
|
198
|
+
it 'should convert blank tmx to json' do
|
199
|
+
tmx = ''
|
200
|
+
|
201
|
+
Entityjs::Compile.to_json('.xml', tmx).should == '{}'
|
202
|
+
end
|
203
|
+
|
204
|
+
end
|
@@ -20,13 +20,17 @@ describe 'dirc' do
|
|
20
20
|
end
|
21
21
|
|
22
22
|
it 'should return script urls' do
|
23
|
-
|
23
|
+
Dir.stub(:'[]').and_return(['asdfsdf/scripts/asdf.js', 'sfhs/scripts/sdf.js', 'asdf/scripts/sdf.json', 'asdf/scripts/sdf.tmx'])
|
24
24
|
|
25
|
-
Entityjs::Dirc.find_scripts_url
|
25
|
+
scripts = Entityjs::Dirc.find_scripts_url
|
26
|
+
scripts.should be_instance_of Array
|
27
|
+
|
28
|
+
scripts.last.should match /\.tmx/
|
29
|
+
scripts[-2].should match /\.json/
|
26
30
|
end
|
27
31
|
|
28
32
|
it 'should ignore and order game scripts' do
|
29
|
-
|
33
|
+
Dir.stub(:'[]').and_return(['asdfsdf/scripts/second.js', 'sfhs/scripts/first.js',
|
30
34
|
'sdf/scripts/kill.js','sdf/scripts/kill2.js'])
|
31
35
|
|
32
36
|
out = Entityjs::Dirc.find_scripts_url(['kill'], ['first'])
|
@@ -55,7 +59,7 @@ describe 'dirc' do
|
|
55
59
|
end
|
56
60
|
|
57
61
|
it 'should ignore entity scripts' do
|
58
|
-
|
62
|
+
Dir.stub(:'[]').and_return(['asdfsdf/src/first.js', 'sfhs/src/ignore.js', 'sdfds/src/ignore2.js'])
|
59
63
|
|
60
64
|
out = Entityjs::Dirc.find_entity_src_url(['ignore', 'ignore2'])
|
61
65
|
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe 'Page' do
|
4
|
+
|
5
|
+
before do
|
6
|
+
setup_mygame
|
7
|
+
end
|
8
|
+
|
9
|
+
after(:all) do
|
10
|
+
teardown_mygame
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'should render play' do
|
14
|
+
html = Entityjs::Page.render_play
|
15
|
+
|
16
|
+
html.should be_instance_of String
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should render tests' do
|
20
|
+
|
21
|
+
test = Entityjs::Page.render_tests
|
22
|
+
|
23
|
+
test.should be_instance_of String
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'should render entityjs src' do
|
27
|
+
src = Entityjs::Page.render_entityjs_src('core/re.js')
|
28
|
+
|
29
|
+
src.should be_instance_of String
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'should render eunit' do
|
33
|
+
src = Entityjs::Page.render_eunit('qunit.js')
|
34
|
+
|
35
|
+
src.should be_instance_of String
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'should be script' do
|
39
|
+
js = 'var test = 10;'
|
40
|
+
IO.stub(:read).and_return(js)
|
41
|
+
|
42
|
+
script = Entityjs::Page.render_script('blah.js')
|
43
|
+
|
44
|
+
script.should == js
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'should render coffee script' do
|
48
|
+
coffee = 'square = (x) -> x * x'
|
49
|
+
|
50
|
+
#causes v8 to crash
|
51
|
+
#IO.stub(:read).and_return(coffee)
|
52
|
+
Entityjs::Compile.stub(:read_contents).and_return(coffee)
|
53
|
+
|
54
|
+
js = Entityjs::Page.render_script('blah.coffee')
|
55
|
+
|
56
|
+
js.should == "var square;\n\nsquare = function(x) {\n return x * x;\n};\n"
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
data/spec/support/factories.rb
CHANGED
data/src/core/entity.js
CHANGED
@@ -47,11 +47,6 @@
|
|
47
47
|
|
48
48
|
p.id = '';
|
49
49
|
|
50
|
-
p.addComp = function(c){
|
51
|
-
re.log('AddComp deprecated use comp')
|
52
|
-
this.comp(c);
|
53
|
-
};
|
54
|
-
|
55
50
|
p.comp = function(com){
|
56
51
|
|
57
52
|
this._re_comp(com);
|
@@ -118,6 +113,7 @@
|
|
118
113
|
c.trigger('dispose', this);
|
119
114
|
|
120
115
|
}
|
116
|
+
return this;
|
121
117
|
};
|
122
118
|
|
123
119
|
/*
|
@@ -438,10 +434,6 @@
|
|
438
434
|
return this;
|
439
435
|
};
|
440
436
|
|
441
|
-
p.extend = function(){
|
442
|
-
throw 'Deprecated use attr'
|
443
|
-
};
|
444
|
-
|
445
437
|
p.attr = function(obj, value){
|
446
438
|
|
447
439
|
if(re.is(obj, 'object')){
|
@@ -466,15 +458,6 @@
|
|
466
458
|
return this;
|
467
459
|
};
|
468
460
|
|
469
|
-
p.inherit = function(){
|
470
|
-
|
471
|
-
throw 'Deprecated use def'
|
472
|
-
}
|
473
|
-
|
474
|
-
p.defaults = function(){
|
475
|
-
throw 'Deprecated use def'
|
476
|
-
}
|
477
|
-
|
478
461
|
p.def = function(obj, value){
|
479
462
|
|
480
463
|
if(re.is(obj , 'object')){
|
@@ -510,6 +493,9 @@
|
|
510
493
|
|
511
494
|
this.trigger('dispose');
|
512
495
|
|
496
|
+
//remove all events
|
497
|
+
this.off();
|
498
|
+
|
513
499
|
return this;
|
514
500
|
}
|
515
501
|
|