Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

added early game source

  • Loading branch information...
commit 5dc92ad9cd318361a5bad8ccb8e3e9186e348643 1 parent 4fa7f07
pce authored

Showing 105 changed files with 10,677 additions and 49 deletions. Show diff stats Hide diff stats

  1. +11 0 .project
  2. +9 49 README.md
  3. BIN  screenshot.png
  4. +157 0 src/404.html
  5. +15 0 src/crossdomain.xml
  6. +314 0 src/css/main.css
  7. +504 0 src/css/normalize.css
  8. BIN  src/data/hit.wav
  9. BIN  src/data/last-hit.wav
  10. BIN  src/data/lasthit-1.wav
  11. +1 0  src/data/pixmap/bird-1-500x350.js
  12. +1 0  src/data/pixmap/bird-1A.js
  13. +4 0 src/data/pixmap/clouds.js
  14. +1 0  src/data/pixmap/deserttree.js
  15. +6 0 src/data/pixmap/house-1.js
  16. +1 0  src/data/pixmap/house-2.js
  17. +3 0  src/data/pixmap/monster.js
  18. +2 0  src/data/pixmap/player-2_color.js
  19. +1 0  src/data/pixmap/player-2_outline.js
  20. +4 0 src/data/pixmap/player.js
  21. +2 0  src/data/pixmap/sheep.js
  22. +1 0  src/data/pixmap/sheep2-colored.js
  23. +1 0  src/data/pixmap/sheep2.js
  24. +1 0  src/data/pixmap/skyline-800x600.js
  25. +1 0  src/data/pixmap/skyline.js
  26. +1 0  src/data/pixmap/skyline2.js
  27. +1 0  src/data/pixmap/skyline3.js
  28. +1 0  src/data/pixmap/sleepy-1-800x600.js
  29. +1 0  src/data/pixmap/sleepy-2-800x600.js
  30. +1 0  src/data/pixmap/sleepy-3-800x600.js
  31. BIN  src/data/sheep-1.wav
  32. BIN  src/data/sheep-3.wav
  33. BIN  src/data/sheep.wav
  34. BIN  src/data/start.wav
  35. BIN  src/images/bg-0-s.png
  36. BIN  src/images/bg-0.png
  37. BIN  src/images/bird-1As.png
  38. BIN  src/images/bird-1s.png
  39. BIN  src/images/fork-1.png
  40. +1 0  src/images/pixmap/bird-1-500x350.js
  41. +1 0  src/images/pixmap/bird-1A.js
  42. +4 0 src/images/pixmap/clouds.js
  43. +1 0  src/images/pixmap/deserttree.js
  44. +6 0 src/images/pixmap/house-1.js
  45. +1 0  src/images/pixmap/house-2.js
  46. +3 0  src/images/pixmap/monster.js
  47. +2 0  src/images/pixmap/player-2_color.js
  48. +1 0  src/images/pixmap/player-2_outline.js
  49. +4 0 src/images/pixmap/player.js
  50. +2 0  src/images/pixmap/sheep.js
  51. +1 0  src/images/pixmap/sheep2-colored.js
  52. +1 0  src/images/pixmap/sheep2.js
  53. +1 0  src/images/pixmap/skyline-800x600.js
  54. +1 0  src/images/pixmap/skyline.js
  55. +1 0  src/images/pixmap/skyline2.js
  56. +1 0  src/images/pixmap/skyline3.js
  57. +1 0  src/images/pixmap/sleepy-1-800x600.js
  58. +1 0  src/images/pixmap/sleepy-2-800x600.js
  59. +1 0  src/images/pixmap/sleepy-3-800x600.js
  60. BIN  src/images/player-2-xl.png
  61. BIN  src/images/player-2.png
  62. BIN  src/images/sheep-2.png
  63. BIN  src/images/sheep-s-1.png
  64. BIN  src/images/sheep-s-2.png
  65. BIN  src/images/skyline-800x350.png
  66. BIN  src/images/skyline-800x350.xcf
  67. BIN  src/images/sleepy-1-s.png
  68. BIN  src/images/sleepy-2-reading.png
  69. BIN  src/images/sleepy-3-s-awake.png
  70. BIN  src/images/sleepy-4-s-awake.png
  71. +27 0 src/index.html
  72. +7 0 src/javascript/index.html
  73. +59 0 src/javascript/keys.js
  74. +203 0 src/javascript/main.js
  75. +362 0 src/javascript/mobs.js
  76. +11 0 src/javascript/snd.js
  77. BIN  src/public/ajax-loader.gif
  78. +4,699 0 src/public/gamejs.min.js
  79. +58 0 src/public/gamejs/base64.js
  80. +105 0 src/public/gamejs/display.js
  81. +178 0 src/public/gamejs/draw.js
  82. +307 0 src/public/gamejs/event.js
  83. +89 0 src/public/gamejs/font.js
  84. +116 0 src/public/gamejs/http.js
  85. +131 0 src/public/gamejs/image.js
  86. +245 0 src/public/gamejs/mask.js
  87. +193 0 src/public/gamejs/mixer.js
  88. +156 0 src/public/gamejs/pathfinding/astar.js
  89. +388 0 src/public/gamejs/sprite.js
  90. +130 0 src/public/gamejs/surfacearray.js
  91. +101 0 src/public/gamejs/time.js
  92. +298 0 src/public/gamejs/tmx.js
  93. +102 0 src/public/gamejs/transform.js
  94. +29 0 src/public/gamejs/utils/arrays.js
  95. +154 0 src/public/gamejs/utils/binaryheap.js
  96. +67 0 src/public/gamejs/utils/math.js
  97. +90 0 src/public/gamejs/utils/matrix.js
  98. +100 0 src/public/gamejs/utils/objects.js
  99. +23 0 src/public/gamejs/utils/strings.js
  100. +111 0 src/public/gamejs/utils/uri.js
  101. +124 0 src/public/gamejs/utils/vectors.js
  102. +208 0 src/public/gamejs/worker.js
  103. +133 0 src/public/gamejs/xml.js
  104. +590 0 src/public/yabble.js
  105. +3 0  src/robots.txt
11 .project
... ... @@ -0,0 +1,11 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<projectDescription>
  3 + <name>game-off-2012</name>
  4 + <comment></comment>
  5 + <projects>
  6 + </projects>
  7 + <buildSpec>
  8 + </buildSpec>
  9 + <natures>
  10 + </natures>
  11 +</projectDescription>
58 README.md
Source Rendered
... ... @@ -1,8 +1,6 @@
1   -Here at GitHub, we're no strangers to hosting or sponsoring hackathons. With the growing number of games and game development resources on GitHub, we thought it was about time to throw our very own game jam!
  1 +## CloneSheepCatcher
2 2
3   -## The Challenge
4   -
5   -You have the entire month of November to create a **web-based** game *loosely* built around one or more of the following themes:
  3 +I had the entire month of November to create a **web-based** game *loosely* built around one or more of the following themes:
6 4
7 5 * forking (or forks)
8 6 * branching (or branches)
@@ -10,55 +8,17 @@ You have the entire month of November to create a **web-based** game *loosely* b
10 8 * pushing
11 9 * pulling
12 10
13   -What do we mean by **loosely** based on these concepts? We literally mean, *loosely* based. Some examples might be a FPS where you throw forks at water balloons, an educational game about DNA cloning, or perhaps a platformer where you push and pull objects.
14   -
15   -Your game. Your rules. You can participate as an individual or as a team. You're encouraged to use open source libraries, frameworks, graphics, and sounds.
16   -
17   -## Prizes
18   -
19   -We have 5 shiny new iPads with Retina displays (64GB wifi models) to give to our winners (or Apple Store Credit equivalent). Runners up will receive GitHub swag of their choice ($100 credit for the [GitHub Shop](http://shop.github.com/)). If you have a team submission, we'll give you Apple Store credit equal to the value of the iPad. You can split it with your teammates as appropriate.
20   -
21   -All of the winners and runners up will be showcased on our blog.
22   -
23   -<img src="http://i.imgur.com/lxZrD.png" style="border:0;">
24   -
25   -### Everyone's a winner!
26   -
27   -All participants will receive a limited edition [Coderwall](http://www.coderwall.com) badge as shown above. Winners and runners up will also get their own special version of it.
28   -
29   -## Judging
30   -
31   -We have a number of awesome judges who graciously volunteered to take a look at all the entries!
32   -
33   -* [David Czarnecki](http://twitter.com/CzarneckiD), Lead Engineer at Agora Games
34   -* [Eric Preisz](https://twitter.com/epreisz), CEO of GarageGames
35   -* [Matt Hackett](https://twitter.com/#!/richtaur), Co-founder of Lost Decade Games
36   -* [Lee Reilly](http://twitter.com/leereilly), Gamer Dad and Software Developer at GitHub
37   -* [Romana Ramzan](https://twitter.com/Manak/), Denki's Player Champion. PhD Researcher. Organiser of Scottish Game Jam.
38   -
39   -## Rules
  11 +## Mission
40 12
41   -* To qualify for entry as an **individual** you must fork the [github/game-off-2012](https://github.com/github/game-off-2012) repository to your individual account
42   -* To qualify for entry as a **team** you must fork the [github/game-off-2012](https://github.com/github/game-off-2012) to a [free organization account](https://github.com/settings/organizations)
43   -* All entries must be web-based i.e. playable in a browser. HTML5, WebGL, Unity, Torque 3D, Node JS, Flash is all possible - just be sure the source is made available on your fork.
44   -* You must be over the age of 13
  13 +You have to catch sheep clones to get `huddy` fall into a deep sleep.
45 14
46   -## Instructions
47 15
48   -* If you don't already have a GitHub account, [sign up now](https://github.com/signup/free) - it's free!
49   -* Fork the [github/game-off-2012](https://github.com/github/game-off-2012) repository to your individual account (or to a free organization account)
50   -* Be sure to follow @github on Twitter for updates
51   -* Make sure your code is pushed to the master branch of before Dec 1st!
52   -* Make sure you have a README file with a brief description, what open source projects (if any) you used, and a screenshot.
53   -* Your repo should have a brief description and a URL where the game is playable entered into the fields shown below (this will make our judging process easier):
  16 +## Credits
54 17
55   -![](https://img.skitch.com/20121010-x2ecpu95fi91us6hbfehg2dgit.png)
  18 +I used a selfwritten, stupid and simple [Pixmap Editor](http://pce.github.com/html5/pixmap.html) to create most of the graphics and:
56 19
57   -Winners will be announced before Christmas :santa:
  20 +* gimp - toolkit to polish the graphics
  21 +* gamejs - framework
58 22
59   -# Comments / Questions / Help
60 23
61   -* New to Git, GitHub, and/or version control? Check out our [help documentation](https://help.github.com/) to get started!
62   -* Questions about Git/GitHub? Please email support@github.com and be sure to include 'GitHub Game Off' in the subject.
63   -* Questions specific to the GitHub Game Off? Please [create an issue](https://github.com/github/game-off-2012/issues/new). That will be the offical FAQ.
64   -* The official Twitter hashtag is [#ggo12](https://twitter.com/search/realtime?q=%23ggo12).
  24 +![](https://github.com/pce/game-off-2012/master/raw/screenshot.png)
BIN  screenshot.png
157 src/404.html
... ... @@ -0,0 +1,157 @@
  1 +<!DOCTYPE html>
  2 +<html lang="en">
  3 + <head>
  4 + <meta charset="utf-8">
  5 + <title>Page Not Found :(</title>
  6 + <style>
  7 + ::-moz-selection {
  8 + background: #b3d4fc;
  9 + text-shadow: none;
  10 + }
  11 +
  12 + ::selection {
  13 + background: #b3d4fc;
  14 + text-shadow: none;
  15 + }
  16 +
  17 + html {
  18 + padding: 30px 10px;
  19 + font-size: 20px;
  20 + line-height: 1.4;
  21 + color: #737373;
  22 + background: #f0f0f0;
  23 + -webkit-text-size-adjust: 100%;
  24 + -ms-text-size-adjust: 100%;
  25 + }
  26 +
  27 + html,
  28 + input {
  29 + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  30 + }
  31 +
  32 + body {
  33 + max-width: 500px;
  34 + _width: 500px;
  35 + padding: 30px 20px 50px;
  36 + border: 1px solid #b3b3b3;
  37 + border-radius: 4px;
  38 + margin: 0 auto;
  39 + box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
  40 + background: #fcfcfc;
  41 + }
  42 +
  43 + h1 {
  44 + margin: 0 10px;
  45 + font-size: 50px;
  46 + text-align: center;
  47 + }
  48 +
  49 + h1 span {
  50 + color: #bbb;
  51 + }
  52 +
  53 + h3 {
  54 + margin: 1.5em 0 0.5em;
  55 + }
  56 +
  57 + p {
  58 + margin: 1em 0;
  59 + }
  60 +
  61 + ul {
  62 + padding: 0 0 0 40px;
  63 + margin: 1em 0;
  64 + }
  65 +
  66 + .container {
  67 + max-width: 380px;
  68 + _width: 380px;
  69 + margin: 0 auto;
  70 + }
  71 +
  72 + /* google search */
  73 +
  74 + #goog-fixurl ul {
  75 + list-style: none;
  76 + padding: 0;
  77 + margin: 0;
  78 + }
  79 +
  80 + #goog-fixurl form {
  81 + margin: 0;
  82 + }
  83 +
  84 + #goog-wm-qt,
  85 + #goog-wm-sb {
  86 + border: 1px solid #bbb;
  87 + font-size: 16px;
  88 + line-height: normal;
  89 + vertical-align: top;
  90 + color: #444;
  91 + border-radius: 2px;
  92 + }
  93 +
  94 + #goog-wm-qt {
  95 + width: 220px;
  96 + height: 20px;
  97 + padding: 5px;
  98 + margin: 5px 10px 0 0;
  99 + box-shadow: inset 0 1px 1px #ccc;
  100 + }
  101 +
  102 + #goog-wm-sb {
  103 + display: inline-block;
  104 + height: 32px;
  105 + padding: 0 10px;
  106 + margin: 5px 0 0;
  107 + white-space: nowrap;
  108 + cursor: pointer;
  109 + background-color: #f5f5f5;
  110 + background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  111 + background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  112 + background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  113 + background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
  114 + -webkit-appearance: none;
  115 + -moz-appearance: none;
  116 + appearance: none;
  117 + *overflow: visible;
  118 + *display: inline;
  119 + *zoom: 1;
  120 + }
  121 +
  122 + #goog-wm-sb:hover,
  123 + #goog-wm-sb:focus {
  124 + border-color: #aaa;
  125 + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
  126 + background-color: #f8f8f8;
  127 + }
  128 +
  129 + #goog-wm-qt:hover,
  130 + #goog-wm-qt:focus {
  131 + border-color: #105cb6;
  132 + outline: 0;
  133 + color: #222;
  134 + }
  135 +
  136 + input::-moz-focus-inner {
  137 + padding: 0;
  138 + border: 0;
  139 + }
  140 + </style>
  141 + </head>
  142 + <body>
  143 + <div class="container">
  144 + <h1>Not found <span>:(</span></h1>
  145 + <p>Sorry, but the page you were trying to view does not exist.</p>
  146 + <p>It looks like this was the result of either:</p>
  147 + <ul>
  148 + <li>a mistyped address</li>
  149 + <li>an out-of-date link</li>
  150 + </ul>
  151 + <script>
  152 + var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
  153 + </script>
  154 + <script src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
  155 + </div>
  156 + </body>
  157 +</html>
15 src/crossdomain.xml
... ... @@ -0,0 +1,15 @@
  1 +<?xml version="1.0"?>
  2 +<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
  3 +<cross-domain-policy>
  4 + <!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
  5 +
  6 + <!-- Most restrictive policy: -->
  7 + <site-control permitted-cross-domain-policies="none"/>
  8 +
  9 + <!-- Least restrictive policy: -->
  10 + <!--
  11 + <site-control permitted-cross-domain-policies="all"/>
  12 + <allow-access-from domain="*" to-ports="*" secure="false"/>
  13 + <allow-http-request-headers-from domain="*" headers="*" secure="false"/>
  14 + -->
  15 +</cross-domain-policy>
314 src/css/main.css
... ... @@ -0,0 +1,314 @@
  1 +/*
  2 + * HTML5 Boilerplate
  3 + *
  4 + * What follows is the result of much research on cross-browser styling.
  5 + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
  6 + * Kroc Camen, and the H5BP dev community and team.
  7 + */
  8 +
  9 +/* ==========================================================================
  10 + Base styles: opinionated defaults
  11 + ========================================================================== */
  12 +
  13 +html,
  14 +button,
  15 +input,
  16 +select,
  17 +textarea {
  18 + color: #222;
  19 +}
  20 +
  21 +body {
  22 + font-size: 1em;
  23 + line-height: 1.4;
  24 +}
  25 +
  26 +/*
  27 + * Remove text-shadow in selection highlight: h5bp.com/i
  28 + * These selection declarations have to be separate.
  29 + * Customize the background color to match your design.
  30 + */
  31 +
  32 +::-moz-selection {
  33 + background: #b3d4fc;
  34 + text-shadow: none;
  35 +}
  36 +
  37 +::selection {
  38 + background: #b3d4fc;
  39 + text-shadow: none;
  40 +}
  41 +
  42 +/*
  43 + * A better looking default horizontal rule
  44 + */
  45 +
  46 +hr {
  47 + display: block;
  48 + height: 1px;
  49 + border: 0;
  50 + border-top: 1px solid #ccc;
  51 + margin: 1em 0;
  52 + padding: 0;
  53 +}
  54 +
  55 +/*
  56 + * Remove the gap between images and the bottom of their containers: h5bp.com/i/440
  57 + */
  58 +
  59 +img {
  60 + vertical-align: middle;
  61 +}
  62 +
  63 +/*
  64 + * Remove default fieldset styles.
  65 + */
  66 +
  67 +fieldset {
  68 + border: 0;
  69 + margin: 0;
  70 + padding: 0;
  71 +}
  72 +
  73 +/*
  74 + * Allow only vertical resizing of textareas.
  75 + */
  76 +
  77 +textarea {
  78 + resize: vertical;
  79 +}
  80 +
  81 +/* ==========================================================================
  82 + Chrome Frame prompt
  83 + ========================================================================== */
  84 +
  85 +.chromeframe {
  86 + margin: 0.2em 0;
  87 + background: #ccc;
  88 + color: #000;
  89 + padding: 0.2em 0;
  90 +}
  91 +
  92 +/* ==========================================================================
  93 + Author's custom styles
  94 + ========================================================================== */
  95 +
  96 +body {
  97 + background:#001111;
  98 + color:#ccc;
  99 + padding:0;
  100 + font-family: monospace;
  101 +}
  102 +
  103 +#gjs-loader {
  104 + width: 50%;
  105 + height: 50%;
  106 + background: url('../public/ajax-loader.gif');
  107 +}
  108 +
  109 +#gjs-canvas {
  110 + border: 3px solid #112233;
  111 +}
  112 +
  113 +#game {
  114 + margin:1em 0 2em 6em;
  115 +}
  116 +.btn-game {
  117 + background-color: #006DCC;
  118 + background-image: linear-gradient(to bottom, #0088CC, #0044CC);
  119 + background-repeat: repeat-x;
  120 + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
  121 + color: #FFFFFF;
  122 + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
  123 +}
  124 +
  125 +
  126 +
  127 +/* ==========================================================================
  128 + Helper classes
  129 + ========================================================================== */
  130 +
  131 +/*
  132 + * Image replacement
  133 + */
  134 +
  135 +.ir {
  136 + background-color: transparent;
  137 + border: 0;
  138 + overflow: hidden;
  139 + /* IE 6/7 fallback */
  140 + *text-indent: -9999px;
  141 +}
  142 +
  143 +.ir:before {
  144 + content: "";
  145 + display: block;
  146 + width: 0;
  147 + height: 100%;
  148 +}
  149 +
  150 +/*
  151 + * Hide from both screenreaders and browsers: h5bp.com/u
  152 + */
  153 +
  154 +.hidden {
  155 + display: none !important;
  156 + visibility: hidden;
  157 +}
  158 +
  159 +/*
  160 + * Hide only visually, but have it available for screenreaders: h5bp.com/v
  161 + */
  162 +
  163 +.visuallyhidden {
  164 + border: 0;
  165 + clip: rect(0 0 0 0);
  166 + height: 1px;
  167 + margin: -1px;
  168 + overflow: hidden;
  169 + padding: 0;
  170 + position: absolute;
  171 + width: 1px;
  172 +}
  173 +
  174 +/*
  175 + * Extends the .visuallyhidden class to allow the element to be focusable
  176 + * when navigated to via the keyboard: h5bp.com/p
  177 + */
  178 +
  179 +.visuallyhidden.focusable:active,
  180 +.visuallyhidden.focusable:focus {
  181 + clip: auto;
  182 + height: auto;
  183 + margin: 0;
  184 + overflow: visible;
  185 + position: static;
  186 + width: auto;
  187 +}
  188 +
  189 +/*
  190 + * Hide visually and from screenreaders, but maintain layout
  191 + */
  192 +
  193 +.invisible {
  194 + visibility: hidden;
  195 +}
  196 +
  197 +/*
  198 + * Clearfix: contain floats
  199 + *
  200 + * For modern browsers
  201 + * 1. The space content is one way to avoid an Opera bug when the
  202 + * `contenteditable` attribute is included anywhere else in the document.
  203 + * Otherwise it causes space to appear at the top and bottom of elements
  204 + * that receive the `clearfix` class.
  205 + * 2. The use of `table` rather than `block` is only necessary if using
  206 + * `:before` to contain the top-margins of child elements.
  207 + */
  208 +
  209 +.clearfix:before,
  210 +.clearfix:after {
  211 + content: " "; /* 1 */
  212 + display: table; /* 2 */
  213 +}
  214 +
  215 +.clearfix:after {
  216 + clear: both;
  217 +}
  218 +
  219 +/*
  220 + * For IE 6/7 only
  221 + * Include this rule to trigger hasLayout and contain floats.
  222 + */
  223 +
  224 +.clearfix {
  225 + *zoom: 1;
  226 +}
  227 +
  228 +/* ==========================================================================
  229 + EXAMPLE Media Queries for Responsive Design.
  230 + Theses examples override the primary ('mobile first') styles.
  231 + Modify as content requires.
  232 + ========================================================================== */
  233 +
  234 +@media only screen and (min-width: 35em) {
  235 + /* Style adjustments for viewports that meet the condition */
  236 +}
  237 +
  238 +@media only screen and (-webkit-min-device-pixel-ratio: 1.5),
  239 + only screen and (min-resolution: 144dpi) {
  240 + /* Style adjustments for high resolution devices */
  241 +}
  242 +
  243 +/* ==========================================================================
  244 + Print styles.
  245 + Inlined to avoid required HTTP connection: h5bp.com/r
  246 + ========================================================================== */
  247 +
  248 +@media print {
  249 + * {
  250 + background: transparent !important;
  251 + color: #000 !important; /* Black prints faster: h5bp.com/s */
  252 + box-shadow: none !important;
  253 + text-shadow: none !important;
  254 + }
  255 +
  256 + a,
  257 + a:visited {
  258 + text-decoration: underline;
  259 + }
  260 +
  261 + a[href]:after {
  262 + content: " (" attr(href) ")";
  263 + }
  264 +
  265 + abbr[title]:after {
  266 + content: " (" attr(title) ")";
  267 + }
  268 +
  269 + /*
  270 + * Don't show links for images, or javascript/internal links
  271 + */
  272 +
  273 + .ir a:after,
  274 + a[href^="javascript:"]:after,
  275 + a[href^="#"]:after {
  276 + content: "";
  277 + }
  278 +
  279 + pre,
  280 + blockquote {
  281 + border: 1px solid #999;
  282 + page-break-inside: avoid;
  283 + }
  284 +
  285 + thead {
  286 + display: table-header-group; /* h5bp.com/t */
  287 + }
  288 +
  289 + tr,
  290 + img {
  291 + page-break-inside: avoid;
  292 + }
  293 +
  294 + img {
  295 + max-width: 100% !important;
  296 + }
  297 +
  298 + @page {
  299 + margin: 0.5cm;
  300 + }
  301 +
  302 + p,
  303 + h2,
  304 + h3 {
  305 + orphans: 3;
  306 + widows: 3;
  307 + }
  308 +
  309 + h2,
  310 + h3 {
  311 + page-break-after: avoid;
  312 + }
  313 +}
  314 +
504 src/css/normalize.css
... ... @@ -0,0 +1,504 @@
  1 +/*! normalize.css v1.0.1 | MIT License | git.io/normalize */
  2 +
  3 +/* ==========================================================================
  4 + HTML5 display definitions
  5 + ========================================================================== */
  6 +
  7 +/*
  8 + * Corrects `block` display not defined in IE 6/7/8/9 and Firefox 3.
  9 + */
  10 +
  11 +article,
  12 +aside,
  13 +details,
  14 +figcaption,
  15 +figure,
  16 +footer,
  17 +header,
  18 +hgroup,
  19 +nav,
  20 +section,
  21 +summary {
  22 + display: block;
  23 +}
  24 +
  25 +/*
  26 + * Corrects `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
  27 + */
  28 +
  29 +audio,
  30 +canvas,
  31 +video {
  32 + display: inline-block;
  33 + *display: inline;
  34 + *zoom: 1;
  35 +}
  36 +
  37 +/*
  38 + * Prevents modern browsers from displaying `audio` without controls.
  39 + * Remove excess height in iOS 5 devices.
  40 + */
  41 +
  42 +audio:not([controls]) {
  43 + display: none;
  44 + height: 0;
  45 +}
  46 +
  47 +/*
  48 + * Addresses styling for `hidden` attribute not present in IE 7/8/9, Firefox 3,
  49 + * and Safari 4.
  50 + * Known issue: no IE 6 support.
  51 + */
  52 +
  53 +[hidden] {
  54 + display: none;
  55 +}
  56 +
  57 +/* ==========================================================================
  58 + Base
  59 + ========================================================================== */
  60 +
  61 +/*
  62 + * 1. Corrects text resizing oddly in IE 6/7 when body `font-size` is set using
  63 + * `em` units.
  64 + * 2. Prevents iOS text size adjust after orientation change, without disabling
  65 + * user zoom.
  66 + */
  67 +
  68 +html {
  69 + font-size: 100%; /* 1 */
  70 + -webkit-text-size-adjust: 100%; /* 2 */
  71 + -ms-text-size-adjust: 100%; /* 2 */
  72 +}
  73 +
  74 +/*
  75 + * Addresses `font-family` inconsistency between `textarea` and other form
  76 + * elements.
  77 + */
  78 +
  79 +html,
  80 +button,
  81 +input,
  82 +select,
  83 +textarea {
  84 + font-family: sans-serif;
  85 +}
  86 +
  87 +/*
  88 + * Addresses margins handled incorrectly in IE 6/7.
  89 + */
  90 +
  91 +body {
  92 + margin: 0;
  93 +}
  94 +
  95 +/* ==========================================================================
  96 + Links
  97 + ========================================================================== */
  98 +
  99 +/*
  100 + * Addresses `outline` inconsistency between Chrome and other browsers.
  101 + */
  102 +
  103 +a:focus {
  104 + outline: thin dotted;
  105 +}
  106 +
  107 +/*
  108 + * Improves readability when focused and also mouse hovered in all browsers.
  109 + */
  110 +
  111 +a:active,
  112 +a:hover {
  113 + outline: 0;
  114 +}
  115 +
  116 +/* ==========================================================================
  117 + Typography
  118 + ========================================================================== */
  119 +
  120 +/*
  121 + * Addresses font sizes and margins set differently in IE 6/7.
  122 + * Addresses font sizes within `section` and `article` in Firefox 4+, Safari 5,
  123 + * and Chrome.
  124 + */
  125 +
  126 +h1 {
  127 + font-size: 2em;
  128 + margin: 0.67em 0;
  129 +}
  130 +
  131 +h2 {
  132 + font-size: 1.5em;
  133 + margin: 0.83em 0;
  134 +}
  135 +
  136 +h3 {
  137 + font-size: 1.17em;
  138 + margin: 1em 0;
  139 +}
  140 +
  141 +h4 {
  142 + font-size: 1em;
  143 + margin: 1.33em 0;
  144 +}
  145 +
  146 +h5 {
  147 + font-size: 0.83em;
  148 + margin: 1.67em 0;
  149 +}
  150 +
  151 +h6 {
  152 + font-size: 0.75em;
  153 + margin: 2.33em 0;
  154 +}
  155 +
  156 +/*
  157 + * Addresses styling not present in IE 7/8/9, Safari 5, and Chrome.
  158 + */
  159 +
  160 +abbr[title] {
  161 + border-bottom: 1px dotted;
  162 +}
  163 +
  164 +/*
  165 + * Addresses style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
  166 + */
  167 +
  168 +b,
  169 +strong {
  170 + font-weight: bold;
  171 +}
  172 +
  173 +blockquote {
  174 + margin: 1em 40px;
  175 +}
  176 +
  177 +/*
  178 + * Addresses styling not present in Safari 5 and Chrome.
  179 + */
  180 +
  181 +dfn {
  182 + font-style: italic;
  183 +}
  184 +
  185 +/*
  186 + * Addresses styling not present in IE 6/7/8/9.
  187 + */
  188 +
  189 +mark {
  190 + background: #ff0;
  191 + color: #000;
  192 +}
  193 +
  194 +/*
  195 + * Addresses margins set differently in IE 6/7.
  196 + */
  197 +
  198 +p,
  199 +pre {
  200 + margin: 1em 0;
  201 +}
  202 +
  203 +/*
  204 + * Corrects font family set oddly in IE 6, Safari 4/5, and Chrome.
  205 + */
  206 +
  207 +code,
  208 +kbd,
  209 +pre,
  210 +samp {
  211 + font-family: monospace, serif;
  212 + _font-family: 'courier new', monospace;
  213 + font-size: 1em;
  214 +}
  215 +
  216 +/*
  217 + * Improves readability of pre-formatted text in all browsers.
  218 + */
  219 +
  220 +pre {
  221 + white-space: pre;
  222 + white-space: pre-wrap;
  223 + word-wrap: break-word;
  224 +}
  225 +
  226 +/*
  227 + * Addresses CSS quotes not supported in IE 6/7.
  228 + */
  229 +
  230 +q {
  231 + quotes: none;
  232 +}
  233 +
  234 +/*
  235 + * Addresses `quotes` property not supported in Safari 4.
  236 + */
  237 +
  238 +q:before,
  239 +q:after {
  240 + content: '';
  241 + content: none;
  242 +}
  243 +
  244 +/*
  245 + * Addresses inconsistent and variable font size in all browsers.
  246 + */
  247 +
  248 +small {
  249 + font-size: 80%;
  250 +}
  251 +
  252 +/*
  253 + * Prevents `sub` and `sup` affecting `line-height` in all browsers.
  254 + */
  255 +
  256 +sub,
  257 +sup {
  258 + font-size: 75%;
  259 + line-height: 0;
  260 + position: relative;
  261 + vertical-align: baseline;
  262 +}
  263 +
  264 +sup {
  265 + top: -0.5em;
  266 +}
  267 +
  268 +sub {
  269 + bottom: -0.25em;
  270 +}
  271 +
  272 +/* ==========================================================================
  273 + Lists
  274 + ========================================================================== */
  275 +
  276 +/*
  277 + * Addresses margins set differently in IE 6/7.
  278 + */
  279 +
  280 +dl,
  281 +menu,
  282 +ol,
  283 +ul {
  284 + margin: 1em 0;
  285 +}
  286 +
  287 +dd {
  288 + margin: 0 0 0 40px;
  289 +}
  290 +
  291 +/*
  292 + * Addresses paddings set differently in IE 6/7.
  293 + */
  294 +
  295 +menu,
  296 +ol,
  297 +ul {
  298 + padding: 0 0 0 40px;
  299 +}
  300 +
  301 +/*
  302 + * Corrects list images handled incorrectly in IE 7.
  303 + */
  304 +
  305 +nav ul,
  306 +nav ol {
  307 + list-style: none;
  308 + list-style-image: none;
  309 +}
  310 +
  311 +/* ==========================================================================
  312 + Embedded content
  313 + ========================================================================== */
  314 +
  315 +/*
  316 + * 1. Removes border when inside `a` element in IE 6/7/8/9 and Firefox 3.
  317 + * 2. Improves image quality when scaled in IE 7.
  318 + */
  319 +
  320 +img {
  321 + border: 0; /* 1 */
  322 + -ms-interpolation-mode: bicubic; /* 2 */
  323 +}
  324 +
  325 +/*
  326 + * Corrects overflow displayed oddly in IE 9.
  327 + */
  328 +
  329 +svg:not(:root) {
  330 + overflow: hidden;
  331 +}
  332 +
  333 +/* ==========================================================================
  334 + Figures
  335 + ========================================================================== */
  336 +
  337 +/*
  338 + * Addresses margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
  339 + */
  340 +
  341 +figure {
  342 + margin: 0;
  343 +}
  344 +
  345 +/* ==========================================================================
  346 + Forms
  347 + ========================================================================== */
  348 +
  349 +/*
  350 + * Corrects margin displayed oddly in IE 6/7.
  351 + */
  352 +
  353 +form {
  354 + margin: 0;
  355 +}
  356 +
  357 +/*
  358 + * Define consistent border, margin, and padding.
  359 + */
  360 +
  361 +fieldset {
  362 + border: 1px solid #c0c0c0;
  363 + margin: 0 2px;
  364 + padding: 0.35em 0.625em 0.75em;
  365 +}
  366 +
  367 +/*
  368 + * 1. Corrects color not being inherited in IE 6/7/8/9.
  369 + * 2. Corrects text not wrapping in Firefox 3.
  370 + * 3. Corrects alignment displayed oddly in IE 6/7.
  371 + */
  372 +
  373 +legend {
  374 + border: 0; /* 1 */
  375 + padding: 0;
  376 + white-space: normal; /* 2 */
  377 + *margin-left: -7px; /* 3 */
  378 +}
  379 +
  380 +/*
  381 + * 1. Corrects font size not being inherited in all browsers.
  382 + * 2. Addresses margins set differently in IE 6/7, Firefox 3+, Safari 5,
  383 + * and Chrome.
  384 + * 3. Improves appearance and consistency in all browsers.
  385 + */
  386 +
  387 +button,
  388 +input,
  389 +select,
  390 +textarea {
  391 + font-size: 100%; /* 1 */
  392 + margin: 0; /* 2 */
  393 + vertical-align: baseline; /* 3 */
  394 + *vertical-align: middle; /* 3 */
  395 +}
  396 +
  397 +/*
  398 + * Addresses Firefox 3+ setting `line-height` on `input` using `!important` in
  399 + * the UA stylesheet.
  400 + */
  401 +
  402 +button,
  403 +input {
  404 + line-height: normal;
  405 +}
  406 +
  407 +/*
  408 + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
  409 + * and `video` controls.
  410 + * 2. Corrects inability to style clickable `input` types in iOS.
  411 + * 3. Improves usability and consistency of cursor style between image-type
  412 + * `input` and others.
  413 + * 4. Removes inner spacing in IE 7 without affecting normal text inputs.
  414 + * Known issue: inner spacing remains in IE 6.
  415 + */
  416 +
  417 +button,
  418 +html input[type="button"], /* 1 */
  419 +input[type="reset"],
  420 +input[type="submit"] {
  421 + -webkit-appearance: button; /* 2 */
  422 + cursor: pointer; /* 3 */
  423 + *overflow: visible; /* 4 */
  424 +}
  425 +
  426 +/*
  427 + * Re-set default cursor for disabled elements.
  428 + */
  429 +
  430 +button[disabled],
  431 +input[disabled] {
  432 + cursor: default;
  433 +}
  434 +
  435 +/*
  436 + * 1. Addresses box sizing set to content-box in IE 8/9.
  437 + * 2. Removes excess padding in IE 8/9.
  438 + * 3. Removes excess padding in IE 7.
  439 + * Known issue: excess padding remains in IE 6.
  440 + */
  441 +
  442 +input[type="checkbox"],
  443 +input[type="radio"] {
  444 + box-sizing: border-box; /* 1 */
  445 + padding: 0; /* 2 */
  446 + *height: 13px; /* 3 */
  447 + *width: 13px; /* 3 */
  448 +}
  449 +
  450 +/*
  451 + * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
  452 + * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
  453 + * (include `-moz` to future-proof).
  454 + */
  455 +
  456 +input[type="search"] {
  457 + -webkit-appearance: textfield; /* 1 */
  458 + -moz-box-sizing: content-box;
  459 + -webkit-box-sizing: content-box; /* 2 */
  460 + box-sizing: content-box;
  461 +}
  462 +
  463 +/*
  464 + * Removes inner padding and search cancel button in Safari 5 and Chrome
  465 + * on OS X.
  466 + */
  467 +
  468 +input[type="search"]::-webkit-search-cancel-button,
  469 +input[type="search"]::-webkit-search-decoration {
  470 + -webkit-appearance: none;
  471 +}
  472 +
  473 +/*
  474 + * Removes inner padding and border in Firefox 3+.
  475 + */
  476 +
  477 +button::-moz-focus-inner,
  478 +input::-moz-focus-inner {
  479 + border: 0;
  480 + padding: 0;
  481 +}
  482 +
  483 +/*
  484 + * 1. Removes default vertical scrollbar in IE 6/7/8/9.
  485 + * 2. Improves readability and alignment in all browsers.
  486 + */
  487 +
  488 +textarea {
  489 + overflow: auto; /* 1 */
  490 + vertical-align: top; /* 2 */
  491 +}
  492 +
  493 +/* ==========================================================================
  494 + Tables
  495 + ========================================================================== */
  496 +
  497 +/*
  498 + * Remove most spacing between table cells.
  499 + */
  500 +
  501 +table {
  502 + border-collapse: collapse;
  503 + border-spacing: 0;
  504 +}
BIN  src/data/hit.wav
Binary file not shown
BIN  src/data/last-hit.wav
Binary file not shown
BIN  src/data/lasthit-1.wav
Binary file not shown
1  src/data/pixmap/bird-1-500x350.js
... ... @@ -0,0 +1 @@
  1 +[{"x":7,"y":13,"c":"#000"},{"x":7,"y":14,"c":"#000"},{"x":6,"y":15,"c":"#000"},{"x":6,"y":16,"c":"#000"},{"x":7,"y":17,"c":"#000"},{"x":8,"y":17,"c":"#000"},{"x":9,"y":17,"c":"#000"},{"x":10,"y":17,"c":"#000"},{"x":11,"y":17,"c":"#000"},{"x":12,"y":17,"c":"#000"},{"x":13,"y":17,"c":"#000"},{"x":14,"y":17,"c":"#000"},{"x":14,"y":18,"c":"#000"},{"x":13,"y":18,"c":"#000"},{"x":12,"y":19,"c":"#000"},{"x":11,"y":20,"c":"#000"},{"x":10,"y":20,"c":"#000"},{"x":10,"y":19,"c":"#000"},{"x":10,"y":18,"c":"#000"},{"x":11,"y":16,"c":"#000"},{"x":10,"y":16,"c":"#000"},{"x":10,"y":15,"c":"#000"},{"x":9,"y":15,"c":"#000"},{"x":9,"y":14,"c":"#000"},{"x":10,"y":14,"c":"#000"},{"x":11,"y":14,"c":"#000"},{"x":11,"y":15,"c":"#000"},{"x":12,"y":15,"c":"#000"},{"x":12,"y":14,"c":"#000"},{"x":8,"y":15,"c":"#000"},{"x":7,"y":16,"c":"#000"},{"x":8,"y":16,"c":"#000"},{"x":9,"y":16,"c":"#000"},{"x":12,"y":16,"c":"#000"},{"x":8,"y":14,"c":"#000"},{"x":7,"y":15,"c":"#000"},{"x":7,"y":12,"c":"#318"},{"x":8,"y":12,"c":"#318"},{"x":9,"y":12,"c":"#318"},{"x":10,"y":12,"c":"#318"},{"x":11,"y":12,"c":"#318"},{"x":12,"y":12,"c":"#000"},{"x":12,"y":13,"c":"#000"},{"x":11,"y":13,"c":"#000"},{"x":10,"y":13,"c":"#318"},{"x":9,"y":13,"c":"#318"},{"x":8,"y":13,"c":"#318"},{"x":11,"y":18,"c":"#000"},{"x":12,"y":18,"c":"#000"},{"x":11,"y":19,"c":"#000"},{"x":13,"y":19,"c":"#000"},{"x":13,"y":20,"c":"#000"},{"x":12,"y":20,"c":"#000"},{"x":14,"y":19,"c":"#000"},{"x":15,"y":19,"c":"#000"},{"x":16,"y":19,"c":"#000"},{"x":17,"y":19,"c":"#000"},{"x":18,"y":19,"c":"#000"},{"x":19,"y":20,"c":"#000"},{"x":20,"y":20,"c":"#000"},{"x":21,"y":20,"c":"#000"},{"x":22,"y":20,"c":"#000"},{"x":19,"y":19,"c":"#000"},{"x":9,"y":18,"c":"#000"},{"x":15,"y":17,"c":"#000"},{"x":17,"y":17,"c":"#000"},{"x":19,"y":17,"c":"#000"},{"x":21,"y":17,"c":"#000"},{"x":22,"y":17,"c":"#f91"},{"x":23,"y":17,"c":"#f91"},{"x":20,"y":17,"c":"#000"},{"x":18,"y":17,"c":"#000"},{"x":16,"y":17,"c":"#000"},{"x":15,"y":16,"c":"#000"},{"x":13,"y":16,"c":"#000"},{"x":16,"y":16,"c":"#000"},{"x":14,"y":16,"c":"#000"},{"x":13,"y":12,"c":"#000"},{"x":14,"y":12,"c":"#FFF"},{"x":14,"y":13,"c":"#000"},{"x":15,"y":13,"c":"#FFF"},{"x":15,"y":12,"c":"#FFF"},{"x":12,"y":11,"c":"#000"},{"x":12,"y":10,"c":"#000"},{"x":10,"y":11,"c":"#318"},{"x":10,"y":10,"c":"#318"},{"x":11,"y":10,"c":"#318"},{"x":11,"y":9,"c":"#000"},{"x":10,"y":9,"c":"#000"},{"x":10,"y":8,"c":"#000"},{"x":11,"y":11,"c":"#318"},{"x":12,"y":9,"c":"#000"},{"x":12,"y":8,"c":"#000"},{"x":13,"y":8,"c":"#000"},{"x":14,"y":8,"c":"#000"},{"x":16,"y":8,"c":"#000"},{"x":19,"y":8,"c":"#000"},{"x":22,"y":8,"c":"#000"},{"x":23,"y":8,"c":"#000"},{"x":21,"y":8,"c":"#000"},{"x":20,"y":8,"c":"#000"},{"x":18,"y":8,"c":"#000"},{"x":17,"y":8,"c":"#000"},{"x":14,"y":7,"c":"#000"},{"x":13,"y":7,"c":"#000"},{"x":11,"y":7,"c":"#000"},{"x":10,"y":7,"c":"#000"},{"x":12,"y":7,"c":"#000"},{"x":11,"y":8,"c":"#000"},{"x":13,"y":9,"c":"#000"},{"x":16,"y":9,"c":"#000"},{"x":18,"y":9,"c":"#000"},{"x":19,"y":9,"c":"#000"},{"x":20,"y":9,"c":"#FFF"},{"x":17,"y":9,"c":"#000"},{"x":15,"y":10,"c":"#FFF"},{"x":14,"y":10,"c":"#000"},{"x":14,"y":11,"c":"#FFF"},{"x":15,"y":11,"c":"#FFF"},{"x":15,"y":14,"c":"#FFF"},{"x":16,"y":14,"c":"#FFF"},{"x":16,"y":15,"c":"#000"},{"x":17,"y":15,"c":"#000"},{"x":18,"y":16,"c":"#000"},{"x":20,"y":18,"c":"#000"},{"x":21,"y":19,"c":"#000"},{"x":20,"y":19,"c":"#000"},{"x":19,"y":18,"c":"#000"},{"x":19,"y":16,"c":"#000"},{"x":20,"y":16,"c":"#000"},{"x":21,"y":16,"c":"#000"},{"x":21,"y":15,"c":"#000"},{"x":22,"y":14,"c":"#000"},{"x":23,"y":12,"c":"#000"},{"x":23,"y":11,"c":"#000"},{"x":23,"y":13,"c":"#000"},{"x":22,"y":13,"c":"#000"},{"x":21,"y":13,"c":"#FFF"},{"x":21,"y":12,"c":"#000"},{"x":20,"y":12,"c":"#000"},{"x":20,"y":11,"c":"#000"},{"x":19,"y":11,"c":"#000"},{"x":19,"y":10,"c":"#FFF"},{"x":18,"y":10,"c":"#000"},{"x":21,"y":9,"c":"#FFF"},{"x":22,"y":9,"c":"#000"},{"x":22,"y":10,"c":"#FFF"},{"x":21,"y":10,"c":"#FFF"},{"x":21,"y":14,"c":"#FFF"},{"x":22,"y":15,"c":"#000"},{"x":22,"y":16,"c":"#000"},{"x":17,"y":16,"c":"#000"},{"x":15,"y":15,"c":"#000"},{"x":14,"y":15,"c":"#000"},{"x":14,"y":14,"c":"#000"},{"x":13,"y":13,"c":"#000"},{"x":13,"y":14,"c":"#000"},{"x":13,"y":15,"c":"#000"},{"x":13,"y":11,"c":"#000"},{"x":13,"y":10,"c":"#000"},{"x":14,"y":9,"c":"#000"},{"x":15,"y":9,"c":"#000"},{"x":15,"y":7,"c":"#000"},{"x":16,"y":7,"c":"#000"},{"x":17,"y":7,"c":"#000"},{"x":15,"y":8,"c":"#000"},{"x":18,"y":7,"c":"#000"},{"x":9,"y":7,"c":"#000"},{"x":8,"y":7,"c":"#000"},{"x":8,"y":6,"c":"#000"},{"x":7,"y":6,"c":"#000"},{"x":6,"y":6,"c":"#000"},{"x":6,"y":5,"c":"#000"},{"x":5,"y":5,"c":"#000"},{"x":4,"y":5,"c":"#000"},{"x":4,"y":6,"c":"#318"},{"x":4,"y":7,"c":"#318"},{"x":4,"y":8,"c":"#318"},{"x":4,"y":9,"c":"#318"},{"x":5,"y":9,"c":"#318"},{"x":5,"y":10,"c":"#318"},{"x":5,"y":11,"c":"#000"},{"x":6,"y":11,"c":"#318"},{"x":7,"y":11,"c":"#318"},{"x":8,"y":10,"c":"#318"},{"x":8,"y":9,"c":"#318"},{"x":8,"y":8,"c":"#318"},{"x":8,"y":5,"c":"#000"},{"x":7,"y":7,"c":"#000"},{"x":7,"y":8,"c":"#318"},{"x":6,"y":8,"c":"#318"},{"x":6,"y":9,"c":"#318"},{"x":7,"y":9,"c":"#318"},{"x":7,"y":10,"c":"#318"},{"x":9,"y":10,"c":"#318"},{"x":8,"y":11,"c":"#318"},{"x":6,"y":7,"c":"#318"},{"x":5,"y":7,"c":"#318"},{"x":5,"y":8,"c":"#318"},{"x":6,"y":10,"c":"#318"},{"x":9,"y":8,"c":"#000"},{"x":9,"y":9,"c":"#318"},{"x":9,"y":11,"c":"#318"},{"x":11,"y":6,"c":"#000"},{"x":10,"y":6,"c":"#000"},{"x":10,"y":5,"c":"#000"},{"x":9,"y":5,"c":"#000"},{"x":7,"y":5,"c":"#000"},{"x":6,"y":4,"c":"#000"},{"x":5,"y":4,"c":"#000"},{"x":4,"y":4,"c":"#000"},{"x":4,"y":3,"c":"#000"},{"x":3,"y":3,"c":"#000"},{"x":3,"y":4,"c":"#000"},{"x":3,"y":5,"c":"#000"},{"x":3,"y":6,"c":"#318"},{"x":3,"y":7,"c":"#318"},{"x":3,"y":8,"c":"#000"},{"x":3,"y":9,"c":"#000"},{"x":4,"y":10,"c":"#000"},{"x":4,"y":11,"c":"#000"},{"x":4,"y":12,"c":"#000"},{"x":5,"y":12,"c":"#000"},{"x":6,"y":12,"c":"#318"},{"x":9,"y":6,"c":"#000"},{"x":5,"y":6,"c":"#000"},{"x":2,"y":4,"c":"#318"},{"x":2,"y":3,"c":"#000"},{"x":1,"y":5,"c":"#000"},{"x":1,"y":6,"c":"#000"},{"x":1,"y":7,"c":"#000"},{"x":2,"y":7,"c":"#318"},{"x":2,"y":8,"c":"#000"},{"x":2,"y":6,"c":"#318"},{"x":2,"y":5,"c":"#318"},{"x":1,"y":4,"c":"#318"},{"x":1,"y":3,"c":"#000"},{"x":23,"y":9,"c":"#000"},{"x":23,"y":10,"c":"#000"},{"x":17,"y":6,"c":"#000"},{"x":18,"y":6,"c":"#000"},{"x":19,"y":5,"c":"#000"},{"x":20,"y":4,"c":"#000"},{"x":21,"y":4,"c":"#000"},{"x":22,"y":4,"c":"#000"},{"x":23,"y":4,"c":"#000"},{"x":24,"y":4,"c":"#000"},{"x":25,"y":3,"c":"#000"},{"x":26,"y":3,"c":"#000"},{"x":27,"y":3,"c":"#000"},{"x":26,"y":4,"c":"#000"},{"x":25,"y":4,"c":"#318"},{"x":25,"y":5,"c":"#000"},{"x":24,"y":5,"c":"#318"},{"x":24,"y":6,"c":"#000"},{"x":23,"y":6,"c":"#000"},{"x":22,"y":7,"c":"#000"},{"x":21,"y":7,"c":"#000"},{"x":20,"y":7,"c":"#000"},{"x":21,"y":6,"c":"#318"},{"x":22,"y":6,"c":"#318"},{"x":22,"y":5,"c":"#318"},{"x":19,"y":7,"c":"#000"},{"x":19,"y":6,"c":"#000"},{"x":20,"y":6,"c":"#000"},{"x":21,"y":5,"c":"#318"},{"x":20,"y":5,"c":"#000"},{"x":24,"y":3,"c":"#000"},{"x":23,"y":5,"c":"#318"},{"x":17,"y":12,"c":"#FFF"},{"x":17,"y":11,"c":"#FFF"},{"x":16,"y":11,"c":"#FFF"},{"x":16,"y":12,"c":"#FFF"},{"x":17,"y":10,"c":"#FFF"},{"x":16,"y":10,"c":"#FFF"},{"x":18,"y":11,"c":"#FFF"},{"x":18,"y":12,"c":"#000"},{"x":19,"y":12,"c":"#FFF"},{"x":19,"y":13,"c":"#000"},{"x":20,"y":13,"c":"#FFF"},{"x":20,"y":14,"c":"#FFF"},{"x":20,"y":15,"c":"#FFF"},{"x":19,"y":15,"c":"#FFF"},{"x":19,"y":14,"c":"#FFF"},{"x":18,"y":14,"c":"#FFF"},{"x":18,"y":15,"c":"#FFF"},{"x":17,"y":14,"c":"#FFF"},{"x":17,"y":13,"c":"#FFF"},{"x":16,"y":13,"c":"#FFF"},{"x":18,"y":13,"c":"#FFF"},{"x":20,"y":10,"c":"#FFF"},{"x":21,"y":11,"c":"#FFF"},{"x":22,"y":11,"c":"#FFF"},{"x":22,"y":12,"c":"#FFF"},{"x":23,"y":16,"c":"#000"},{"x":23,"y":15,"c":"#f91"},{"x":15,"y":18,"c":"#000"},{"x":16,"y":18,"c":"#000"},{"x":17,"y":18,"c":"#000"},{"x":18,"y":18,"c":"#000"},{"x":21,"y":18,"c":"#000"},{"x":22,"y":18,"c":"#000"},{"x":22,"y":19,"c":"#000"},{"x":23,"y":18,"c":"#000"},{"x":23,"y":14,"c":"#f91"},{"x":24,"y":14,"c":"#000"},{"x":24,"y":15,"c":"#f91"},{"x":24,"y":16,"c":"#000"},{"x":25,"y":16,"c":"#f91"},{"x":25,"y":14,"c":"#000"},{"x":25,"y":15,"c":"#f91"},{"x":26,"y":15,"c":"#000"},{"x":26,"y":16,"c":"#000"},{"x":25,"y":17,"c":"#000"},{"x":24,"y":17,"c":"#f91"},{"x":24,"y":13,"c":"#000"},{"x":24,"y":18,"c":"#000"},{"x":6,"y":13,"c":"#000"},{"x":0,"y":3,"c":"#000"},{"x":0,"y":4,"c":"#000"},{"x":0,"y":5,"c":"#000"},{"x":6,"y":14,"c":"#000"},{"x":5,"y":14,"c":"#000"},{"x":5,"y":15,"c":"#000"}]
1  src/data/pixmap/bird-1A.js
... ... @@ -0,0 +1 @@
  1 +[{"x":7,"y":13,"c":"#000"},{"x":7,"y":14,"c":"#000"},{"x":6,"y":15,"c":"#000"},{"x":6,"y":16,"c":"#000"},{"x":7,"y":17,"c":"#000"},{"x":8,"y":17,"c":"#000"},{"x":9,"y":17,"c":"#000"},{"x":10,"y":17,"c":"#000"},{"x":11,"y":17,"c":"#000"},{"x":12,"y":17,"c":"#000"},{"x":13,"y":17,"c":"#000"},{"x":14,"y":17,"c":"#000"},{"x":14,"y":18,"c":"#000"},{"x":13,"y":18,"c":"#000"},{"x":12,"y":19,"c":"#000"},{"x":11,"y":20,"c":"#000"},{"x":10,"y":20,"c":"#000"},{"x":10,"y":19,"c":"#000"},{"x":10,"y":18,"c":"#000"},{"x":11,"y":16,"c":"#000"},{"x":10,"y":16,"c":"#000"},{"x":10,"y":15,"c":"#000"},{"x":9,"y":15,"c":"#000"},{"x":9,"y":14,"c":"#000"},{"x":10,"y":14,"c":"#000"},{"x":11,"y":14,"c":"#000"},{"x":11,"y":15,"c":"#000"},{"x":12,"y":15,"c":"#000"},{"x":12,"y":14,"c":"#000"},{"x":8,"y":15,"c":"#000"},{"x":7,"y":16,"c":"#000"},{"x":8,"y":16,"c":"#000"},{"x":9,"y":16,"c":"#000"},{"x":12,"y":16,"c":"#000"},{"x":8,"y":14,"c":"#000"},{"x":7,"y":15,"c":"#000"},{"x":7,"y":12,"c":"#318"},{"x":8,"y":12,"c":"#318"},{"x":9,"y":12,"c":"#318"},{"x":10,"y":12,"c":"#318"},{"x":11,"y":12,"c":"#318"},{"x":12,"y":12,"c":"#207"},{"x":12,"y":13,"c":"#000"},{"x":11,"y":13,"c":"#000"},{"x":10,"y":13,"c":"#318"},{"x":9,"y":13,"c":"#318"},{"x":8,"y":13,"c":"#318"},{"x":11,"y":18,"c":"#000"},{"x":12,"y":18,"c":"#000"},{"x":11,"y":19,"c":"#000"},{"x":13,"y":19,"c":"#000"},{"x":13,"y":20,"c":"#000"},{"x":12,"y":20,"c":"#000"},{"x":14,"y":19,"c":"#000"},{"x":15,"y":19,"c":"#000"},{"x":16,"y":19,"c":"#000"},{"x":17,"y":19,"c":"#000"},{"x":18,"y":19,"c":"#000"},{"x":19,"y":20,"c":"#000"},{"x":20,"y":20,"c":"#000"},{"x":21,"y":20,"c":"#000"},{"x":22,"y":20,"c":"#000"},{"x":19,"y":19,"c":"#000"},{"x":9,"y":18,"c":"#000"},{"x":15,"y":17,"c":"#000"},{"x":17,"y":17,"c":"#000"},{"x":19,"y":17,"c":"#000"},{"x":21,"y":17,"c":"#000"},{"x":22,"y":17,"c":"#f91"},{"x":23,"y":17,"c":"#f91"},{"x":20,"y":17,"c":"#000"},{"x":18,"y":17,"c":"#000"},{"x":16,"y":17,"c":"#000"},{"x":15,"y":16,"c":"#000"},{"x":13,"y":16,"c":"#000"},{"x":16,"y":16,"c":"#000"},{"x":14,"y":16,"c":"#000"},{"x":13,"y":12,"c":"#000"},{"x":14,"y":12,"c":"#FFF"},{"x":14,"y":13,"c":"#000"},{"x":15,"y":13,"c":"#FFF"},{"x":15,"y":12,"c":"#FFF"},{"x":12,"y":11,"c":"#207"},{"x":12,"y":10,"c":"#207"},{"x":10,"y":11,"c":"#318"},{"x":10,"y":10,"c":"#207"},{"x":11,"y":10,"c":"#207"},{"x":11,"y":9,"c":"#207"},{"x":10,"y":9,"c":"#207"},{"x":10,"y":8,"c":"#207"},{"x":11,"y":11,"c":"#318"},{"x":12,"y":9,"c":"#207"},{"x":12,"y":8,"c":"#000"},{"x":13,"y":8,"c":"#000"},{"x":14,"y":8,"c":"#000"},{"x":16,"y":8,"c":"#000"},{"x":19,"y":8,"c":"#000"},{"x":22,"y":8,"c":"#000"},{"x":23,"y":8,"c":"#000"},{"x":21,"y":8,"c":"#000"},{"x":20,"y":8,"c":"#000"},{"x":18,"y":8,"c":"#000"},{"x":17,"y":8,"c":"#000"},{"x":14,"y":7,"c":"#000"},{"x":13,"y":7,"c":"#000"},{"x":11,"y":7,"c":"#000"},{"x":10,"y":7,"c":"#000"},{"x":12,"y":7,"c":"#000"},{"x":11,"y":8,"c":"#000"},{"x":13,"y":9,"c":"#000"},{"x":16,"y":9,"c":"#000"},{"x":18,"y":9,"c":"#000"},{"x":19,"y":9,"c":"#000"},{"x":20,"y":9,"c":"#FFF"},{"x":17,"y":9,"c":"#000"},{"x":15,"y":10,"c":"#FFF"},{"x":14,"y":10,"c":"#000"},{"x":14,"y":11,"c":"#FFF"},{"x":15,"y":11,"c":"#FFF"},{"x":15,"y":14,"c":"#FFF"},{"x":16,"y":14,"c":"#FFF"},{"x":16,"y":15,"c":"#000"},{"x":17,"y":15,"c":"#000"},{"x":18,"y":16,"c":"#000"},{"x":20,"y":18,"c":"#000"},{"x":21,"y":19,"c":"#000"},{"x":20,"y":19,"c":"#000"},{"x":19,"y":18,"c":"#000"},{"x":19,"y":16,"c":"#000"},{"x":20,"y":16,"c":"#000"},{"x":21,"y":16,"c":"#000"},{"x":21,"y":15,"c":"#000"},{"x":22,"y":14,"c":"#000"},{"x":23,"y":12,"c":"#000"},{"x":23,"y":11,"c":"#000"},{"x":23,"y":13,"c":"#000"},{"x":22,"y":13,"c":"#000"},{"x":21,"y":13,"c":"#FFF"},{"x":21,"y":12,"c":"#000"},{"x":20,"y":12,"c":"#000"},{"x":20,"y":11,"c":"#000"},{"x":19,"y":11,"c":"#000"},{"x":19,"y":10,"c":"#FFF"},{"x":18,"y":10,"c":"#000"},{"x":21,"y":9,"c":"#FFF"},{"x":22,"y":9,"c":"#000"},{"x":22,"y":10,"c":"#FFF"},{"x":21,"y":10,"c":"#FFF"},{"x":21,"y":14,"c":"#FFF"},{"x":22,"y":15,"c":"#000"},{"x":22,"y":16,"c":"#000"},{"x":17,"y":16,"c":"#000"},{"x":15,"y":15,"c":"#000"},{"x":14,"y":15,"c":"#000"},{"x":14,"y":14,"c":"#000"},{"x":13,"y":13,"c":"#000"},{"x":13,"y":14,"c":"#000"},{"x":13,"y":15,"c":"#000"},{"x":13,"y":11,"c":"#000"},{"x":13,"y":10,"c":"#000"},{"x":14,"y":9,"c":"#000"},{"x":15,"y":9,"c":"#000"},{"x":15,"y":7,"c":"#000"},{"x":16,"y":7,"c":"#000"},{"x":17,"y":7,"c":"#000"},{"x":15,"y":8,"c":"#000"},{"x":18,"y":7,"c":"#000"},{"x":9,"y":7,"c":"#000"},{"x":8,"y":7,"c":"#000"},{"x":8,"y":6,"c":"#000"},{"x":7,"y":6,"c":"#318"},{"x":6,"y":6,"c":"#318"},{"x":6,"y":5,"c":"#000"},{"x":5,"y":5,"c":"#318"},{"x":4,"y":5,"c":"#000"},{"x":4,"y":6,"c":"#318"},{"x":4,"y":7,"c":"#000"},{"x":4,"y":8,"c":"#207"},{"x":4,"y":9,"c":"#207"},{"x":5,"y":9,"c":"#207"},{"x":5,"y":10,"c":"#207"},{"x":5,"y":11,"c":"#000"},{"x":6,"y":11,"c":"#318"},{"x":7,"y":11,"c":"#318"},{"x":8,"y":10,"c":"#318"},{"x":8,"y":9,"c":"#207"},{"x":8,"y":8,"c":"#207"},{"x":8,"y":5,"c":"#000"},{"x":7,"y":7,"c":"#000"},{"x":7,"y":8,"c":"#207"},{"x":6,"y":8,"c":"#207"},{"x":6,"y":9,"c":"#207"},{"x":7,"y":9,"c":"#207"},{"x":7,"y":10,"c":"#318"},{"x":9,"y":10,"c":"#207"},{"x":8,"y":11,"c":"#318"},{"x":6,"y":7,"c":"#000"},{"x":5,"y":7,"c":"#000"},{"x":5,"y":8,"c":"#207"},{"x":6,"y":10,"c":"#207"},{"x":9,"y":8,"c":"#207"},{"x":9,"y":9,"c":"#207"},{"x":9,"y":11,"c":"#318"},{"x":11,"y":6,"c":"#000"},{"x":10,"y":6,"c":"#000"},{"x":10,"y":5,"c":"#000"},{"x":9,"y":5,"c":"#000"},{"x":7,"y":5,"c":"#000"},{"x":6,"y":4,"c":"#000"},{"x":5,"y":4,"c":"#000"},{"x":4,"y":4,"c":"#000"},{"x":4,"y":3,"c":"#000"},{"x":3,"y":3,"c":"#000"},{"x":3,"y":4,"c":"#000"},{"x":3,"y":5,"c":"#000"},{"x":3,"y":6,"c":"#318"},{"x":3,"y":7,"c":"#318"},{"x":3,"y":8,"c":"#000"},{"x":3,"y":9,"c":"#000"},{"x":4,"y":10,"c":"#000"},{"x":4,"y":11,"c":"#000"},{"x":4,"y":12,"c":"#000"},{"x":5,"y":12,"c":"#000"},{"x":6,"y":12,"c":"#318"},{"x":9,"y":6,"c":"#318"},{"x":5,"y":6,"c":"#318"},{"x":2,"y":4,"c":"#000"},{"x":2,"y":3,"c":"#000"},{"x":1,"y":5,"c":"#000"},{"x":1,"y":6,"c":"#000"},{"x":1,"y":7,"c":"#000"},{"x":2,"y":7,"c":"#318"},{"x":2,"y":8,"c":"#318"},{"x":2,"y":6,"c":"#000"},{"x":2,"y":5,"c":"#000"},{"x":1,"y":4,"c":"#318"},{"x":1,"y":3,"c":"#000"},{"x":23,"y":9,"c":"#000"},{"x":23,"y":10,"c":"#000"},{"x":17,"y":6,"c":"#000"},{"x":18,"y":6,"c":"#000"},{"x":19,"y":5,"c":"#000"},{"x":20,"y":4,"c":"#000"},{"x":21,"y":4,"c":"#000"},{"x":22,"y":4,"c":"#000"},{"x":23,"y":4,"c":"#000"},{"x":24,"y":4,"c":"#000"},{"x":25,"y":3,"c":"#000"},{"x":26,"y":3,"c":"#000"},{"x":27,"y":3,"c":"#000"},{"x":26,"y":4,"c":"#000"},{"x":25,"y":4,"c":"#000"},{"x":25,"y":5,"c":"#000"},{"x":24,"y":5,"c":"#318"},{"x":24,"y":6,"c":"#000"},{"x":23,"y":6,"c":"#000"},{"x":22,"y":7,"c":"#000"},{"x":21,"y":7,"c":"#000"},{"x":20,"y":7,"c":"#000"},{"x":21,"y":6,"c":"#318"},{"x":22,"y":6,"c":"#318"},{"x":22,"y":5,"c":"#318"},{"x":19,"y":7,"c":"#000"},{"x":19,"y":6,"c":"#000"},{"x":20,"y":6,"c":"#000"},{"x":21,"y":5,"c":"#318"},{"x":20,"y":5,"c":"#000"},{"x":24,"y":3,"c":"#000"},{"x":23,"y":5,"c":"#318"},{"x":17,"y":12,"c":"#FFF"},{"x":17,"y":11,"c":"#FFF"},{"x":16,"y":11,"c":"#FFF"},{"x":16,"y":12,"c":"#FFF"},{"x":17,"y":10,"c":"#FFF"},{"x":16,"y":10,"c":"#FFF"},{"x":18,"y":11,"c":"#FFF"},{"x":18,"y":12,"c":"#000"},{"x":19,"y":12,"c":"#FFF"},{"x":19,"y":13,"c":"#000"},{"x":20,"y":13,"c":"#FFF"},{"x":20,"y":14,"c":"#FFF"},{"x":20,"y":15,"c":"#FFF"},{"x":19,"y":15,"c":"#FFF"},{"x":19,"y":14,"c":"#FFF"},{"x":18,"y":14,"c":"#FFF"},{"x":18,"y":15,"c":"#FFF"},{"x":17,"y":14,"c":"#FFF"},{"x":17,"y":13,"c":"#FFF"},{"x":16,"y":13,"c":"#FFF"},{"x":18,"y":13,"c":"#FFF"},{"x":20,"y":10,"c":"#FFF"},{"x":21,"y":11,"c":"#FFF"},{"x":22,"y":11,"c":"#FFF"},{"x":22,"y":12,"c":"#FFF"},{"x":23,"y":16,"c":"#000"},{"x":23,"y":15,"c":"#f91"},{"x":15,"y":18,"c":"#000"},{"x":16,"y":18,"c":"#000"},{"x":17,"y":18,"c":"#000"},{"x":18,"y":18,"c":"#000"},{"x":21,"y":18,"c":"#000"},{"x":22,"y":18,"c":"#000"},{"x":22,"y":19,"c":"#000"},{"x":23,"y":18,"c":"#f91"},{"x":23,"y":14,"c":"#f91"},{"x":24,"y":14,"c":"#f91"},{"x":24,"y":15,"c":"#f91"},{"x":24,"y":16,"c":"#000"},{"x":25,"y":16,"c":"#FFF"},{"x":25,"y":14,"c":"#f91"},{"x":25,"y":15,"c":"#000"},{"x":26,"y":15,"c":"#000"},{"x":26,"y":16,"c":"#000"},{"x":25,"y":17,"c":"#000"},{"x":24,"y":17,"c":"#f91"},{"x":24,"y":13,"c":"#000"},{"x":24,"y":18,"c":"#f91"},{"x":6,"y":13,"c":"#000"},{"x":0,"y":3,"c":"#000"},{"x":0,"y":4,"c":"#000"},{"x":0,"y":5,"c":"#000"},{"x":6,"y":14,"c":"#000"},{"x":5,"y":14,"c":"#000"},{"x":5,"y":15,"c":"#000"},{"x":23,"y":19,"c":"#000"},{"x":24,"y":19,"c":"#000"},{"x":25,"y":13,"c":"#000"},{"x":25,"y":18,"c":"#f91"},{"x":26,"y":18,"c":"#000"},{"x":25,"y":19,"c":"#000"},{"x":26,"y":14,"c":"#000"},{"x":0,"y":8,"c":"#000"},{"x":1,"y":8,"c":"#000"},{"x":0,"y":11,"c":"#000"},{"x":1,"y":11,"c":"#000"},{"x":2,"y":11,"c":"#000"},{"x":2,"y":10,"c":"#000"},{"x":3,"y":10,"c":"#000"},{"x":1,"y":9,"c":"#318"},{"x":0,"y":9,"c":"#000"},{"x":0,"y":10,"c":"#000"},{"x":1,"y":10,"c":"#318"},{"x":2,"y":9,"c":"#000"},{"x":25,"y":6,"c":"#000"},{"x":26,"y":6,"c":"#000"},{"x":26,"y":7,"c":"#207"},{"x":25,"y":7,"c":"#207"},{"x":24,"y":7,"c":"#000"},{"x":23,"y":7,"c":"#000"},{"x":25,"y":8,"c":"#000"},{"x":26,"y":8,"c":"#000"},{"x":27,"y":8,"c":"#000"},{"x":27,"y":7,"c":"#000"},{"x":28,"y":8,"c":"#000"}]
4 src/data/pixmap/clouds.js
... ... @@ -0,0 +1,4 @@
  1 +
  2 +// clouds
  3 +[{"x":10,"y":15,"c":"#FFF"},{"x":11,"y":15,"c":"#FFF"},{"x":12,"y":15,"c":"#FFF"},{"x":13,"y":15,"c":"#FFF"},{"x":15,"y":15,"c":"#FFF"},{"x":11,"y":14,"c":"#FFF"},{"x":12,"y":14,"c":"#FFF"},{"x":13,"y":14,"c":"#FFF"},{"x":14,"y":14,"c":"#FFF"},{"x":12,"y":13,"c":"#FFF"},{"x":13,"y":13,"c":"#FFF"},{"x":7,"y":12,"c":"#FFF"},{"x":8,"y":12,"c":"#FFF"},{"x":8,"y":13,"c":"#FFF"},{"x":9,"y":13,"c":"#FFF"},{"x":9,"y":14,"c":"#FFF"},{"x":10,"y":14,"c":"#FFF"},{"x":9,"y":15,"c":"#FFF"},{"x":8,"y":15,"c":"#FFF"},{"x":7,"y":15,"c":"#FFF"},{"x":6,"y":15,"c":"#FFF"},{"x":5,"y":15,"c":"#FFF"},{"x":5,"y":14,"c":"#FFF"},{"x":6,"y":14,"c":"#FFF"},{"x":6,"y":13,"c":"#FFF"},{"x":7,"y":13,"c":"#FFF"},{"x":7,"y":14,"c":"#FFF"},{"x":8,"y":14,"c":"#FFF"},{"x":7,"y":16,"c":"#FFF"},{"x":8,"y":16,"c":"#FFF"},{"x":9,"y":16,"c":"#FFF"},{"x":10,"y":16,"c":"#FFF"},{"x":11,"y":16,"c":"#FFF"},{"x":12,"y":16,"c":"#FFF"},{"x":13,"y":16,"c":"#FFF"},{"x":14,"y":16,"c":"#FFF"},{"x":14,"y":15,"c":"#FFF"},{"x":33,"y":8,"c":"#FFF"},{"x":34,"y":9,"c":"#FFF"},{"x":36,"y":9,"c":"#FFF"},{"x":35,"y":9,"c":"#FFF"},{"x":34,"y":7,"c":"#FFF"},{"x":35,"y":8,"c":"#FFF"},{"x":34,"y":8,"c":"#FFF"},{"x":32,"y":9,"c":"#FFF"},{"x":33,"y":9,"c":"#FFF"},{"x":37,"y":8,"c":"#FFF"},{"x":38,"y":9,"c":"#FFF"},{"x":37,"y":9,"c":"#FFF"},{"x":33,"y":10,"c":"#FFF"},{"x":34,"y":10,"c":"#FFF"},{"x":35,"y":10,"c":"#FFF"},{"x":36,"y":10,"c":"#FFF"},{"x":38,"y":10,"c":"#FFF"},{"x":37,"y":10,"c":"#FFF"},{"x":39,"y":10,"c":"#FFF"},{"x":33,"y":23,"c":"#FFF"},{"x":36,"y":23,"c":"#FFF"},{"x":35,"y":23,"c":"#FFF"},{"x":34,"y":23,"c":"#FFF"},{"x":35,"y":24,"c":"#FFF"},{"x":36,"y":24,"c":"#FFF"},{"x":37,"y":24,"c":"#FFF"},{"x":38,"y":24,"c":"#FFF"},{"x":39,"y":24,"c":"#FFF"},{"x":40,"y":24,"c":"#FFF"},{"x":41,"y":24,"c":"#FFF"},{"x":36,"y":22,"c":"#FFF"},{"x":37,"y":22,"c":"#FFF"},{"x":37,"y":23,"c":"#FFF"},{"x":38,"y":23,"c":"#FFF"},{"x":41,"y":23,"c":"#FFF"},{"x":42,"y":24,"c":"#FFF"},{"x":35,"y":25,"c":"#FFF"},{"x":34,"y":24,"c":"#FFF"},{"x":33,"y":24,"c":"#FFF"},{"x":32,"y":24,"c":"#FFF"},{"x":32,"y":25,"c":"#FFF"},{"x":34,"y":25,"c":"#FFF"},{"x":33,"y":25,"c":"#FFF"},{"x":31,"y":25,"c":"#FFF"},{"x":30,"y":25,"c":"#FFF"},{"x":30,"y":24,"c":"#FFF"},{"x":29,"y":24,"c":"#FFF"},{"x":28,"y":24,"c":"#FFF"},{"x":27,"y":24,"c":"#FFF"},{"x":28,"y":23,"c":"#FFF"},{"x":29,"y":23,"c":"#FFF"},{"x":30,"y":23,"c":"#FFF"},{"x":30,"y":22,"c":"#FFF"},{"x":31,"y":22,"c":"#FFF"},{"x":32,"y":22,"c":"#FFF"},{"x":32,"y":23,"c":"#FFF"},{"x":31,"y":23,"c":"#FFF"},{"x":31,"y":24,"c":"#FFF"},{"x":31,"y":21,"c":"#FFF"},{"x":32,"y":21,"c":"#FFF"},{"x":33,"y":22,"c":"#FFF"},{"x":4,"y":15,"c":"#FFF"}]
  4 +
1  src/data/pixmap/deserttree.js
... ... @@ -0,0 +1 @@
  1 +[{"x":0,"y":23,"c":"#7b0"},{"x":1,"y":23,"c":"#7b0"},{"x":2,"y":23,"c":"#7b0"},{"x":3,"y":23,"c":"#7b0"},{"x":4,"y":23,"c":"#7b0"},{"x":5,"y":23,"c":"#7b0"},{"x":6,"y":23,"c":"#7b0"},{"x":8,"y":23,"c":"#7b0"},{"x":9,"y":23,"c":"#7b0"},{"x":10,"y":23,"c":"#7b0"},{"x":12,"y":23,"c":"#7b0"},{"x":14,"y":23,"c":"#7b0"},{"x":17,"y":23,"c":"#7b0"},{"x":18,"y":23,"c":"#7b0"},{"x":19,"y":23,"c":"#7b0"},{"x":20,"y":23,"c":"#7b0"},{"x":21,"y":23,"c":"#7b0"},{"x":22,"y":23,"c":"#7b0"},{"x":24,"y":23,"c":"#7b0"},{"x":25,"y":23,"c":"#7b0"},{"x":26,"y":23,"c":"#7b0"},{"x":28,"y":23,"c":"#7b0"},{"x":29,"y":23,"c":"#7b0"},{"x":30,"y":23,"c":"#7b0"},{"x":31,"y":23,"c":"#7b0"},{"x":27,"y":23,"c":"#7b0"},{"x":16,"y":23,"c":"#7b0"},{"x":15,"y":23,"c":"#7b0"},{"x":13,"y":23,"c":"#7b0"},{"x":7,"y":23,"c":"#7b0"},{"x":11,"y":23,"c":"#7b0"},{"x":32,"y":23,"c":"#7b0"},{"x":23,"y":23,"c":"#7b0"},{"x":26,"y":22,"c":"#7b0"},{"x":27,"y":22,"c":"#7b0"},{"x":28,"y":22,"c":"#7b0"},{"x":29,"y":22,"c":"#7b0"},{"x":30,"y":22,"c":"#7b0"},{"x":31,"y":22,"c":"#7b0"},{"x":32,"y":22,"c":"#7b0"},{"x":25,"y":22,"c":"#7b0"},{"x":24,"y":22,"c":"#7b0"},{"x":23,"y":22,"c":"#7b0"},{"x":22,"y":22,"c":"#7b0"},{"x":13,"y":22,"c":"#7b0"},{"x":12,"y":22,"c":"#7b0"},{"x":11,"y":22,"c":"#7b0"},{"x":10,"y":22,"c":"#7b0"},{"x":9,"y":22,"c":"#7b0"},{"x":8,"y":22,"c":"#7b0"},{"x":7,"y":22,"c":"#7b0"},{"x":6,"y":22,"c":"#7b0"},{"x":5,"y":22,"c":"#7b0"},{"x":4,"y":22,"c":"#7b0"},{"x":24,"y":21,"c":"#7b0"},{"x":25,"y":21,"c":"#7b0"},{"x":26,"y":21,"c":"#7b0"},{"x":27,"y":21,"c":"#7b0"},{"x":28,"y":21,"c":"#7b0"},{"x":29,"y":21,"c":"#7b0"},{"x":30,"y":21,"c":"#7b0"},{"x":31,"y":21,"c":"#7b0"},{"x":32,"y":21,"c":"#7b0"},{"x":31,"y":16,"c":"#79f"},{"x":30,"y":16,"c":"#79f"},{"x":29,"y":16,"c":"#79f"},{"x":28,"y":16,"c":"#79f"},{"x":27,"y":16,"c":"#79f"},{"x":26,"y":16,"c":"#79f"},{"x":25,"y":16,"c":"#79f"},{"x":24,"y":16,"c":"#79f"},{"x":23,"y":16,"c":"#79f"},{"x":22,"y":16,"c":"#79f"},{"x":21,