entityjs 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
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,762 @@
1
+ /*
2
+ -------------- Content container ---------------
3
+ */
4
+
5
+ body {
6
+ background:url(background.png) #F2F2F2;
7
+ }
8
+
9
+ #content {
10
+ margin:15px 0 15px 0;
11
+ padding:20px 10px 30px 10px;
12
+ min-height:350px;
13
+ border-radius:2px;
14
+ color:#333333;
15
+ background-color:#ffffff;
16
+ }
17
+
18
+ .canvas-container {
19
+ border:#999999 1px solid;
20
+ width:500px;
21
+ margin-left:auto;
22
+ margin-right:auto;
23
+ margin-bottom:30px;
24
+ }
25
+
26
+
27
+ /*
28
+ size
29
+ */
30
+ .fine {
31
+ font-size:10px;
32
+ }
33
+
34
+ .small {
35
+ font-size:12px;
36
+ }
37
+
38
+ /*
39
+ colour
40
+ */
41
+ .grey {
42
+ color:#999999;
43
+ }
44
+
45
+ h1, h2, h3 {
46
+ font-family: 'Nunito', sans-serif;
47
+ font-weight:700;
48
+ }
49
+
50
+ h1 {
51
+ font-size:24px;
52
+ margin:10px 0 20px 5px;
53
+ color:#D94E4E;
54
+ }
55
+
56
+ h2 {
57
+ font-size:18px;
58
+ margin:10px 0 10px 0;
59
+ }
60
+
61
+ h3 {
62
+ font-size:18px;
63
+ padding:10px 0 10px 0;
64
+ }
65
+
66
+ p {
67
+ margin-top:10px;
68
+ margin-bottom:5px;
69
+ }
70
+
71
+ /*
72
+ ----- links ------
73
+ */
74
+
75
+ a, a:visited {
76
+ color:#5b9463;
77
+ }
78
+
79
+ a:hover {
80
+ color:#77b981;
81
+ }
82
+
83
+ a.highlight, a.highlight:visited {
84
+ color:#D94E4E;
85
+ }
86
+
87
+ a.highlight:hover {
88
+ color:#ec7979;
89
+ }
90
+
91
+ .hd-left,
92
+ .hd-right {
93
+ padding-left:20px;
94
+ padding-top:5px;
95
+ padding-bottom:5px;
96
+ }
97
+
98
+ .hd-left {
99
+ margin-left:-16px;
100
+ padding-left:20px;
101
+ }
102
+
103
+ .hd-right {
104
+ margin-right:-16px;
105
+ padding-left:20px;
106
+ }
107
+
108
+ .bg-grey,
109
+ .bg-green,
110
+ .bg-red,
111
+ .bg-yellow,
112
+ .key {
113
+ box-shadow: inset 1px 1px 0 rgba(255, 255, 255, .3);
114
+ border:1px solid;
115
+ border-radius:2px;
116
+ }
117
+
118
+ .bg-grey {
119
+ background-color:#e6e6e6;
120
+ border-color:#d4d4d4;
121
+ }
122
+
123
+ .bg-green {
124
+ background-color: #75bf80;
125
+ border-color:#69aa72;
126
+ }
127
+
128
+ .bg-red {
129
+ background-color:#D94E4E;
130
+ border-color:#c64747;
131
+ }
132
+
133
+ .bg-yellow {
134
+ background-color:#F2D272;
135
+ border-color:#e0c36a;
136
+ }
137
+
138
+ .key {
139
+ background-color:#e6e6e6;
140
+ border-color:#d4d4d4;
141
+ padding:5px;
142
+ margin-right:5px;
143
+ }
144
+
145
+ ul li{
146
+ margin:14px 0 14px 0;
147
+ }
148
+
149
+ /*
150
+ 960 Grid System ~ Core CSS.
151
+ Learn more ~ http://960.gs/
152
+
153
+ Licensed under GPL and MIT.
154
+ */
155
+
156
+ /*
157
+ Forces backgrounds to span full width,
158
+ even if there is horizontal scrolling.
159
+ Increase this if your layout is wider.
160
+
161
+ Note: IE6 works fine without this fix.
162
+ */
163
+
164
+ body {
165
+ min-width: 980px;
166
+ }
167
+
168
+ /* `Container >> 24 Columns
169
+ ----------------------------------------------------------------------------------------------------*/
170
+ .container_24 {
171
+ margin-left: auto;
172
+ margin-right: auto;
173
+ width: 980px;
174
+ }
175
+
176
+ /* `Grid >> Global
177
+ ----------------------------------------------------------------------------------------------------*/
178
+
179
+ .grid_1,
180
+ .grid_2,
181
+ .grid_3,
182
+ .grid_4,
183
+ .grid_5,
184
+ .grid_6,
185
+ .grid_7,
186
+ .grid_8,
187
+ .grid_9,
188
+ .grid_10,
189
+ .grid_11,
190
+ .grid_12,
191
+ .grid_13,
192
+ .grid_14,
193
+ .grid_15,
194
+ .grid_16,
195
+ .grid_17,
196
+ .grid_18,
197
+ .grid_19,
198
+ .grid_20,
199
+ .grid_21,
200
+ .grid_22,
201
+ .grid_23,
202
+ .grid_24 {
203
+ display: inline;
204
+ float: left;
205
+ margin-left: 5px;
206
+ margin-right: 5px;
207
+ }
208
+
209
+ .push_1, .pull_1,
210
+ .push_2, .pull_2,
211
+ .push_3, .pull_3,
212
+ .push_4, .pull_4,
213
+ .push_5, .pull_5,
214
+ .push_6, .pull_6,
215
+ .push_7, .pull_7,
216
+ .push_8, .pull_8,
217
+ .push_9, .pull_9,
218
+ .push_10, .pull_10,
219
+ .push_11, .pull_11,
220
+ .push_12, .pull_12,
221
+ .push_13, .pull_13,
222
+ .push_14, .pull_14,
223
+ .push_15, .pull_15,
224
+ .push_16, .pull_16,
225
+ .push_17, .pull_17,
226
+ .push_18, .pull_18,
227
+ .push_19, .pull_19,
228
+ .push_20, .pull_20,
229
+ .push_21, .pull_21,
230
+ .push_22, .pull_22,
231
+ .push_23, .pull_23 {
232
+ position: relative;
233
+ }
234
+
235
+ /* `Grid >> Children (Alpha ~ First, Omega ~ Last)
236
+ ----------------------------------------------------------------------------------------------------*/
237
+
238
+ .alpha {
239
+ margin-left: 0;
240
+ }
241
+
242
+ .omega {
243
+ margin-right: 0;
244
+ }
245
+
246
+ /* `Grid >> 24 Columns
247
+ ----------------------------------------------------------------------------------------------------*/
248
+
249
+ .container_24 .grid_1 {
250
+ width: 30px;
251
+ }
252
+
253
+ .container_24 .grid_2 {
254
+ width: 70px;
255
+ }
256
+
257
+ .container_24 .grid_3 {
258
+ width: 110px;
259
+ }
260
+
261
+ .container_24 .grid_4 {
262
+ width: 150px;
263
+ }
264
+
265
+ .container_24 .grid_5 {
266
+ width: 190px;
267
+ }
268
+
269
+ .container_24 .grid_6 {
270
+ width: 230px;
271
+ }
272
+
273
+ .container_24 .grid_7 {
274
+ width: 270px;
275
+ }
276
+
277
+ .container_24 .grid_8 {
278
+ width: 310px;
279
+ }
280
+
281
+ .container_24 .grid_9 {
282
+ width: 350px;
283
+ }
284
+
285
+ .container_24 .grid_10 {
286
+ width: 390px;
287
+ }
288
+
289
+ .container_24 .grid_11 {
290
+ width: 430px;
291
+ }
292
+
293
+ .container_24 .grid_12 {
294
+ width: 470px;
295
+ }
296
+
297
+ .container_24 .grid_13 {
298
+ width: 510px;
299
+ }
300
+
301
+ .container_24 .grid_14 {
302
+ width: 550px;
303
+ }
304
+
305
+ .container_24 .grid_15 {
306
+ width: 590px;
307
+ }
308
+
309
+ .container_24 .grid_16 {
310
+ width: 630px;
311
+ }
312
+
313
+ .container_24 .grid_17 {
314
+ width: 670px;
315
+ }
316
+
317
+ .container_24 .grid_18 {
318
+ width: 710px;
319
+ }
320
+
321
+ .container_24 .grid_19 {
322
+ width: 750px;
323
+ }
324
+
325
+ .container_24 .grid_20 {
326
+ width: 790px;
327
+ }
328
+
329
+ .container_24 .grid_21 {
330
+ width: 830px;
331
+ }
332
+
333
+ .container_24 .grid_22 {
334
+ width: 870px;
335
+ }
336
+
337
+ .container_24 .grid_23 {
338
+ width: 910px;
339
+ }
340
+
341
+ .container_24 .grid_24 {
342
+ width: 950px;
343
+ }
344
+
345
+ /* `Prefix Extra Space >> 24 Columns
346
+ ----------------------------------------------------------------------------------------------------*/
347
+
348
+ .container_24 .prefix_1 {
349
+ padding-left: 40px;
350
+ }
351
+
352
+ .container_24 .prefix_2 {
353
+ padding-left: 80px;
354
+ }
355
+
356
+ .container_24 .prefix_3 {
357
+ padding-left: 120px;
358
+ }
359
+
360
+ .container_24 .prefix_4 {
361
+ padding-left: 160px;
362
+ }
363
+
364
+ .container_24 .prefix_5 {
365
+ padding-left: 200px;
366
+ }
367
+
368
+ .container_24 .prefix_6 {
369
+ padding-left: 240px;
370
+ }
371
+
372
+ .container_24 .prefix_7 {
373
+ padding-left: 280px;
374
+ }
375
+
376
+ .container_24 .prefix_8 {
377
+ padding-left: 320px;
378
+ }
379
+
380
+ .container_24 .prefix_9 {
381
+ padding-left: 360px;
382
+ }
383
+
384
+ .container_24 .prefix_10 {
385
+ padding-left: 400px;
386
+ }
387
+
388
+ .container_24 .prefix_11 {
389
+ padding-left: 440px;
390
+ }
391
+
392
+ .container_24 .prefix_12 {
393
+ padding-left: 480px;
394
+ }
395
+
396
+ .container_24 .prefix_13 {
397
+ padding-left: 520px;
398
+ }
399
+
400
+ .container_24 .prefix_14 {
401
+ padding-left: 560px;
402
+ }
403
+
404
+ .container_24 .prefix_15 {
405
+ padding-left: 600px;
406
+ }
407
+
408
+ .container_24 .prefix_16 {
409
+ padding-left: 640px;
410
+ }
411
+
412
+ .container_24 .prefix_17 {
413
+ padding-left: 680px;
414
+ }
415
+
416
+ .container_24 .prefix_18 {
417
+ padding-left: 720px;
418
+ }
419
+
420
+ .container_24 .prefix_19 {
421
+ padding-left: 760px;
422
+ }
423
+
424
+ .container_24 .prefix_20 {
425
+ padding-left: 800px;
426
+ }
427
+
428
+ .container_24 .prefix_21 {
429
+ padding-left: 840px;
430
+ }
431
+
432
+ .container_24 .prefix_22 {
433
+ padding-left: 880px;
434
+ }
435
+
436
+ .container_24 .prefix_23 {
437
+ padding-left: 920px;
438
+ }
439
+
440
+ /* `Suffix Extra Space >> 24 Columns
441
+ ----------------------------------------------------------------------------------------------------*/
442
+
443
+ .container_24 .suffix_1 {
444
+ padding-right: 40px;
445
+ }
446
+
447
+ .container_24 .suffix_2 {
448
+ padding-right: 80px;
449
+ }
450
+
451
+ .container_24 .suffix_3 {
452
+ padding-right: 120px;
453
+ }
454
+
455
+ .container_24 .suffix_4 {
456
+ padding-right: 160px;
457
+ }
458
+
459
+ .container_24 .suffix_5 {
460
+ padding-right: 200px;
461
+ }
462
+
463
+ .container_24 .suffix_6 {
464
+ padding-right: 240px;
465
+ }
466
+
467
+ .container_24 .suffix_7 {
468
+ padding-right: 280px;
469
+ }
470
+
471
+ .container_24 .suffix_8 {
472
+ padding-right: 320px;
473
+ }
474
+
475
+ .container_24 .suffix_9 {
476
+ padding-right: 360px;
477
+ }
478
+
479
+ .container_24 .suffix_10 {
480
+ padding-right: 400px;
481
+ }
482
+
483
+ .container_24 .suffix_11 {
484
+ padding-right: 440px;
485
+ }
486
+
487
+ .container_24 .suffix_12 {
488
+ padding-right: 480px;
489
+ }
490
+
491
+ .container_24 .suffix_13 {
492
+ padding-right: 520px;
493
+ }
494
+
495
+ .container_24 .suffix_14 {
496
+ padding-right: 560px;
497
+ }
498
+
499
+ .container_24 .suffix_15 {
500
+ padding-right: 600px;
501
+ }
502
+
503
+ .container_24 .suffix_16 {
504
+ padding-right: 640px;
505
+ }
506
+
507
+ .container_24 .suffix_17 {
508
+ padding-right: 680px;
509
+ }
510
+
511
+ .container_24 .suffix_18 {
512
+ padding-right: 720px;
513
+ }
514
+
515
+ .container_24 .suffix_19 {
516
+ padding-right: 760px;
517
+ }
518
+
519
+ .container_24 .suffix_20 {
520
+ padding-right: 800px;
521
+ }
522
+
523
+ .container_24 .suffix_21 {
524
+ padding-right: 840px;
525
+ }
526
+
527
+ .container_24 .suffix_22 {
528
+ padding-right: 880px;
529
+ }
530
+
531
+ .container_24 .suffix_23 {
532
+ padding-right: 920px;
533
+ }
534
+
535
+ /* `Push Space >> 24 Columns
536
+ ----------------------------------------------------------------------------------------------------*/
537
+
538
+ .container_24 .push_1 {
539
+ left: 40px;
540
+ }
541
+
542
+ .container_24 .push_2 {
543
+ left: 80px;
544
+ }
545
+
546
+ .container_24 .push_3 {
547
+ left: 120px;
548
+ }
549
+
550
+ .container_24 .push_4 {
551
+ left: 160px;
552
+ }
553
+
554
+ .container_24 .push_5 {
555
+ left: 200px;
556
+ }
557
+
558
+ .container_24 .push_6 {
559
+ left: 240px;
560
+ }
561
+
562
+ .container_24 .push_7 {
563
+ left: 280px;
564
+ }
565
+
566
+ .container_24 .push_8 {
567
+ left: 320px;
568
+ }
569
+
570
+ .container_24 .push_9 {
571
+ left: 360px;
572
+ }
573
+
574
+ .container_24 .push_10 {
575
+ left: 400px;
576
+ }
577
+
578
+ .container_24 .push_11 {
579
+ left: 440px;
580
+ }
581
+
582
+ .container_24 .push_12 {
583
+ left: 480px;
584
+ }
585
+
586
+ .container_24 .push_13 {
587
+ left: 520px;
588
+ }
589
+
590
+ .container_24 .push_14 {
591
+ left: 560px;
592
+ }
593
+
594
+ .container_24 .push_15 {
595
+ left: 600px;
596
+ }
597
+
598
+ .container_24 .push_16 {
599
+ left: 640px;
600
+ }
601
+
602
+ .container_24 .push_17 {
603
+ left: 680px;
604
+ }
605
+
606
+ .container_24 .push_18 {
607
+ left: 720px;
608
+ }
609
+
610
+ .container_24 .push_19 {
611
+ left: 760px;
612
+ }
613
+
614
+ .container_24 .push_20 {
615
+ left: 800px;
616
+ }
617
+
618
+ .container_24 .push_21 {
619
+ left: 840px;
620
+ }
621
+
622
+ .container_24 .push_22 {
623
+ left: 880px;
624
+ }
625
+
626
+ .container_24 .push_23 {
627
+ left: 920px;
628
+ }
629
+
630
+ /* `Pull Space >> 24 Columns
631
+ ----------------------------------------------------------------------------------------------------*/
632
+
633
+ .container_24 .pull_1 {
634
+ left: -40px;
635
+ }
636
+
637
+ .container_24 .pull_2 {
638
+ left: -80px;
639
+ }
640
+
641
+ .container_24 .pull_3 {
642
+ left: -120px;
643
+ }
644
+
645
+ .container_24 .pull_4 {
646
+ left: -160px;
647
+ }
648
+
649
+ .container_24 .pull_5 {
650
+ left: -200px;
651
+ }
652
+
653
+ .container_24 .pull_6 {
654
+ left: -240px;
655
+ }
656
+
657
+ .container_24 .pull_7 {
658
+ left: -280px;
659
+ }
660
+
661
+ .container_24 .pull_8 {
662
+ left: -320px;
663
+ }
664
+
665
+ .container_24 .pull_9 {
666
+ left: -360px;
667
+ }
668
+
669
+ .container_24 .pull_10 {
670
+ left: -400px;
671
+ }
672
+
673
+ .container_24 .pull_11 {
674
+ left: -440px;
675
+ }
676
+
677
+ .container_24 .pull_12 {
678
+ left: -480px;
679
+ }
680
+
681
+ .container_24 .pull_13 {
682
+ left: -520px;
683
+ }
684
+
685
+ .container_24 .pull_14 {
686
+ left: -560px;
687
+ }
688
+
689
+ .container_24 .pull_15 {
690
+ left: -600px;
691
+ }
692
+
693
+ .container_24 .pull_16 {
694
+ left: -640px;
695
+ }
696
+
697
+ .container_24 .pull_17 {
698
+ left: -680px;
699
+ }
700
+
701
+ .container_24 .pull_18 {
702
+ left: -720px;
703
+ }
704
+
705
+ .container_24 .pull_19 {
706
+ left: -760px;
707
+ }
708
+
709
+ .container_24 .pull_20 {
710
+ left: -800px;
711
+ }
712
+
713
+ .container_24 .pull_21 {
714
+ left: -840px;
715
+ }
716
+
717
+ .container_24 .pull_22 {
718
+ left: -880px;
719
+ }
720
+
721
+ .container_24 .pull_23 {
722
+ left: -920px;
723
+ }
724
+
725
+ /* `Clear Floated Elements
726
+ ----------------------------------------------------------------------------------------------------*/
727
+
728
+ /* http://sonspring.com/journal/clearing-floats */
729
+
730
+ .clear {
731
+ clear: both;
732
+ display: block;
733
+ overflow: hidden;
734
+ visibility: hidden;
735
+ width: 0;
736
+ height: 0;
737
+ }
738
+
739
+ /* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */
740
+
741
+ .clearfix:before,
742
+ .clearfix:after {
743
+ content: '\0020';
744
+ display: block;
745
+ overflow: hidden;
746
+ visibility: hidden;
747
+ width: 0;
748
+ height: 0;
749
+ }
750
+
751
+ .clearfix:after {
752
+ clear: both;
753
+ }
754
+
755
+ /*
756
+ The following zoom:1 rule is specifically for IE6 + IE7.
757
+ Move to separate stylesheet if invalid CSS is a problem.
758
+ */
759
+
760
+ .clearfix {
761
+ zoom: 1;
762
+ }