entityjs 0.2.2

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.
Files changed (100) hide show
  1. data/.gitignore +7 -0
  2. data/Gemfile +4 -0
  3. data/README.md +49 -0
  4. data/Rakefile +1 -0
  5. data/bin/entityjs +14 -0
  6. data/build/build_debug.bat +1 -0
  7. data/build/build_min.bat +1 -0
  8. data/build/config.php +64 -0
  9. data/build/debug.php +48 -0
  10. data/build/files.php +74 -0
  11. data/build/jsmin.php +376 -0
  12. data/build/min.php +50 -0
  13. data/changelog.txt +53 -0
  14. data/entityjs.gemspec +25 -0
  15. data/examples/keys/arrow.png +0 -0
  16. data/examples/keys/keys.html +59 -0
  17. data/examples/keys/keys.js +148 -0
  18. data/examples/mouse/mouse.html +58 -0
  19. data/examples/mouse/mouse.js +60 -0
  20. data/examples/scenes/home.png +0 -0
  21. data/examples/scenes/scenes.html +55 -0
  22. data/examples/scenes/scenes.js +134 -0
  23. data/examples/scenes/win.png +0 -0
  24. data/examples/sounds/sound1.mp3 +0 -0
  25. data/examples/sounds/sound1.ogg +0 -0
  26. data/examples/sounds/sounds.html +56 -0
  27. data/examples/sounds/sounds.js +44 -0
  28. data/examples/style/background.png +0 -0
  29. data/examples/style/sheet.css +762 -0
  30. data/examples/tiles/tiles.html +56 -0
  31. data/examples/tiles/tiles.js +85 -0
  32. data/examples/tiles/tiles.png +0 -0
  33. data/lib/blank/config.js +4 -0
  34. data/lib/blank/config.yml +21 -0
  35. data/lib/blank/home.js +11 -0
  36. data/lib/blank/init.js +7 -0
  37. data/lib/blank/load.js +21 -0
  38. data/lib/blank/play.html +29 -0
  39. data/lib/entity.debug.js +52 -0
  40. data/lib/entity.min.js +184 -0
  41. data/lib/entityjs/command.rb +37 -0
  42. data/lib/entityjs/comp.rb +11 -0
  43. data/lib/entityjs/game.rb +93 -0
  44. data/lib/entityjs/min.rb +11 -0
  45. data/lib/entityjs/refresh.rb +14 -0
  46. data/lib/entityjs/version.rb +3 -0
  47. data/lib/entityjs.rb +6 -0
  48. data/license.txt +1 -0
  49. data/spec/lib/entityjs/game_spec.rb +11 -0
  50. data/spec/spec_helper.rb +3 -0
  51. data/src/entityjs/core/component.js +306 -0
  52. data/src/entityjs/core/entity.js +516 -0
  53. data/src/entityjs/core/load.js +224 -0
  54. data/src/entityjs/core/query.js +410 -0
  55. data/src/entityjs/core/re.js +70 -0
  56. data/src/entityjs/core/system.js +125 -0
  57. data/src/entityjs/cycle/draw.js +185 -0
  58. data/src/entityjs/cycle/ticker.js +27 -0
  59. data/src/entityjs/cycle/tween.js +61 -0
  60. data/src/entityjs/cycle/update.js +86 -0
  61. data/src/entityjs/cycle/wait.js +22 -0
  62. data/src/entityjs/cycle/worker.js +9 -0
  63. data/src/entityjs/display/anchor.js +53 -0
  64. data/src/entityjs/display/bitfont.js +93 -0
  65. data/src/entityjs/display/bitmap.js +37 -0
  66. data/src/entityjs/display/circle.js +30 -0
  67. data/src/entityjs/display/font.js +41 -0
  68. data/src/entityjs/display/group.js +63 -0
  69. data/src/entityjs/display/rect.js +19 -0
  70. data/src/entityjs/display/screen.js +46 -0
  71. data/src/entityjs/display/sprite.js +37 -0
  72. data/src/entityjs/input/keyboard.js +150 -0
  73. data/src/entityjs/input/mouse.js +123 -0
  74. data/src/entityjs/input/pressed.js +81 -0
  75. data/src/entityjs/input/touch.js +28 -0
  76. data/src/entityjs/math/bind.js +76 -0
  77. data/src/entityjs/math/bisect.js +69 -0
  78. data/src/entityjs/math/body.js +39 -0
  79. data/src/entityjs/math/drag.js +39 -0
  80. data/src/entityjs/math/hitmap.js +165 -0
  81. data/src/entityjs/math/hittest.js +26 -0
  82. data/src/entityjs/math/physics.js +142 -0
  83. data/src/entityjs/math/point.js +57 -0
  84. data/src/entityjs/math/tile.js +91 -0
  85. data/src/entityjs/media/channel.js +93 -0
  86. data/src/entityjs/media/playlist.js +5 -0
  87. data/src/entityjs/media/sound.js +110 -0
  88. data/src/entityjs/net/socket.js +52 -0
  89. data/src/entityjs/pattern/arraymap.js +89 -0
  90. data/src/entityjs/pattern/flicker.js +214 -0
  91. data/src/entityjs/pattern/timestep.js +34 -0
  92. data/src/entityjs/save/database.js +7 -0
  93. data/src/entityjs/save/storage.js +57 -0
  94. data/src/entityjs/util/log.js +25 -0
  95. data/src/entityjs/util/polyfill.js +25 -0
  96. data/src/entityjs/util/random.js +38 -0
  97. data/src/entityjs/util/scene.js +101 -0
  98. data/src/entityjs/util/sheet.js +51 -0
  99. data/src/entityjs/util/support.js +132 -0
  100. metadata +156 -0
@@ -0,0 +1,132 @@
1
+ /*
2
+ The support component contains information about supported
3
+ functionality of the browser.
4
+
5
+ v0.1 currently only checks for support of canvas and canvas text.
6
+
7
+ FUTURE
8
+ -check audio support
9
+
10
+ //returns true if canvas AND text is supported
11
+ if(re.support('canvas text')){
12
+ //supports
13
+ }
14
+
15
+ //checks all arguments and returns first thing thats supported
16
+ re.support('ogg', 'aac', 'mp3', 'wav');
17
+
18
+ //find first supported storage storage
19
+ re.support('database', 'localstorage');
20
+
21
+ this is helpful to find a supported codec or a storage component
22
+
23
+ or add to entity
24
+
25
+ re.e('support').support('canvas');
26
+
27
+ ---- possible support checks
28
+ canvas
29
+ text
30
+ audio
31
+ ogg
32
+ mp3
33
+ wav
34
+ aac
35
+ localstorage
36
+ worker
37
+ webgl
38
+
39
+ */
40
+ re.c('support')
41
+ .global({
42
+
43
+ support:function(s){
44
+ var that = re.c('support');
45
+
46
+ if(arguments.length > 1){
47
+ //find first supported arg and return
48
+
49
+ var d;
50
+ for(var i=0; i<arguments.length; i++){
51
+ d = arguments[i];
52
+ if(that.support(d)){
53
+ return d;
54
+ }
55
+ }
56
+
57
+ return false;
58
+ }
59
+
60
+ //find if supported
61
+ var k = s.split(' ');
62
+
63
+ var stat = true;
64
+
65
+ //check multiple supports
66
+ for(var j in k){
67
+ stat = stat && !!that[k[j]];
68
+ }
69
+
70
+ return stat;
71
+ }
72
+
73
+ })
74
+ .extend({
75
+ support:function(s){
76
+ return re.c('support').call(this, s);
77
+ }
78
+
79
+ })
80
+ .run(function(){
81
+
82
+ //add supports to component
83
+ var c = re.c('support');
84
+
85
+ //quick checking function
86
+ re.support = c.support;
87
+
88
+ //check canvas support
89
+ c.canvas = !!document.createElement('canvas').getContext;
90
+
91
+ //check for text support
92
+ c.text = !!(c.canvas && typeof document.createElement('canvas').getContext('2d').fillText == 'function');
93
+
94
+ //check audio support
95
+ var ele = document.createElement('audio');
96
+
97
+ try {
98
+
99
+ if(c.audio = !!ele.canPlayType){
100
+
101
+ c.ogg = ele.canPlayType('audio/ogg; codecs="vorbis"');
102
+ c.mp3 = ele.canPlayType('audio/mpeg;');
103
+ c.wav = ele.canPlayType('audio/wav; codecs="1"');
104
+ c.aac = ele.canPlayType('audio/x-m4a;') || ele.canPlayType('audio/aac;');
105
+
106
+ //switch unsupported codecs to false
107
+ for(var i in c){
108
+ if(c[i] == 'no' || c[i] == ''){
109
+ c[i] = false;
110
+ }
111
+ }
112
+
113
+ }
114
+
115
+ } catch(e){}
116
+
117
+ //check local storage
118
+ try {
119
+ c.localstorage = !!localStorage.getItem;
120
+ } catch(e){
121
+ c.localstorage = false;
122
+ }
123
+
124
+ //check web worker
125
+ c.worker = !!window.Worker;
126
+
127
+ //check webgl
128
+ c.webgl = !!window.WebGLRenderingContext;
129
+
130
+ c.touch = 'ontouchstart' in window;
131
+
132
+ });
metadata ADDED
@@ -0,0 +1,156 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: entityjs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ben D'Angelo
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-27 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: uglifier
16
+ requirement: &28483692 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *28483692
25
+ description: A HTML5 Javascript game engine.
26
+ email:
27
+ - ben.dangelo2@gmail.com
28
+ executables:
29
+ - entityjs
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - .gitignore
34
+ - Gemfile
35
+ - README.md
36
+ - Rakefile
37
+ - bin/entityjs
38
+ - build/build_debug.bat
39
+ - build/build_min.bat
40
+ - build/config.php
41
+ - build/debug.php
42
+ - build/files.php
43
+ - build/jsmin.php
44
+ - build/min.php
45
+ - changelog.txt
46
+ - entityjs.gemspec
47
+ - examples/keys/arrow.png
48
+ - examples/keys/keys.html
49
+ - examples/keys/keys.js
50
+ - examples/mouse/mouse.html
51
+ - examples/mouse/mouse.js
52
+ - examples/scenes/home.png
53
+ - examples/scenes/scenes.html
54
+ - examples/scenes/scenes.js
55
+ - examples/scenes/win.png
56
+ - examples/sounds/sound1.mp3
57
+ - examples/sounds/sound1.ogg
58
+ - examples/sounds/sounds.html
59
+ - examples/sounds/sounds.js
60
+ - examples/style/background.png
61
+ - examples/style/sheet.css
62
+ - examples/tiles/tiles.html
63
+ - examples/tiles/tiles.js
64
+ - examples/tiles/tiles.png
65
+ - lib/blank/config.js
66
+ - lib/blank/config.yml
67
+ - lib/blank/home.js
68
+ - lib/blank/init.js
69
+ - lib/blank/load.js
70
+ - lib/blank/play.html
71
+ - lib/entity.debug.js
72
+ - lib/entity.min.js
73
+ - lib/entityjs.rb
74
+ - lib/entityjs/command.rb
75
+ - lib/entityjs/comp.rb
76
+ - lib/entityjs/game.rb
77
+ - lib/entityjs/min.rb
78
+ - lib/entityjs/refresh.rb
79
+ - lib/entityjs/version.rb
80
+ - license.txt
81
+ - spec/lib/entityjs/game_spec.rb
82
+ - spec/spec_helper.rb
83
+ - src/entityjs/core/component.js
84
+ - src/entityjs/core/entity.js
85
+ - src/entityjs/core/load.js
86
+ - src/entityjs/core/query.js
87
+ - src/entityjs/core/re.js
88
+ - src/entityjs/core/system.js
89
+ - src/entityjs/cycle/draw.js
90
+ - src/entityjs/cycle/ticker.js
91
+ - src/entityjs/cycle/tween.js
92
+ - src/entityjs/cycle/update.js
93
+ - src/entityjs/cycle/wait.js
94
+ - src/entityjs/cycle/worker.js
95
+ - src/entityjs/display/anchor.js
96
+ - src/entityjs/display/bitfont.js
97
+ - src/entityjs/display/bitmap.js
98
+ - src/entityjs/display/circle.js
99
+ - src/entityjs/display/font.js
100
+ - src/entityjs/display/group.js
101
+ - src/entityjs/display/rect.js
102
+ - src/entityjs/display/screen.js
103
+ - src/entityjs/display/sprite.js
104
+ - src/entityjs/input/keyboard.js
105
+ - src/entityjs/input/mouse.js
106
+ - src/entityjs/input/pressed.js
107
+ - src/entityjs/input/touch.js
108
+ - src/entityjs/math/bind.js
109
+ - src/entityjs/math/bisect.js
110
+ - src/entityjs/math/body.js
111
+ - src/entityjs/math/drag.js
112
+ - src/entityjs/math/hitmap.js
113
+ - src/entityjs/math/hittest.js
114
+ - src/entityjs/math/physics.js
115
+ - src/entityjs/math/point.js
116
+ - src/entityjs/math/tile.js
117
+ - src/entityjs/media/channel.js
118
+ - src/entityjs/media/playlist.js
119
+ - src/entityjs/media/sound.js
120
+ - src/entityjs/net/socket.js
121
+ - src/entityjs/pattern/arraymap.js
122
+ - src/entityjs/pattern/flicker.js
123
+ - src/entityjs/pattern/timestep.js
124
+ - src/entityjs/save/database.js
125
+ - src/entityjs/save/storage.js
126
+ - src/entityjs/util/log.js
127
+ - src/entityjs/util/polyfill.js
128
+ - src/entityjs/util/random.js
129
+ - src/entityjs/util/scene.js
130
+ - src/entityjs/util/sheet.js
131
+ - src/entityjs/util/support.js
132
+ homepage: http://entityjs.com
133
+ licenses: []
134
+ post_install_message:
135
+ rdoc_options: []
136
+ require_paths:
137
+ - lib
138
+ required_ruby_version: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ! '>='
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ requirements: []
151
+ rubyforge_project: entityjs
152
+ rubygems_version: 1.8.11
153
+ signing_key:
154
+ specification_version: 3
155
+ summary: A HTML5 Javascript game engine.
156
+ test_files: []