diff options
Diffstat (limited to 'tiled')
-rw-r--r-- | tiled/atlas.png | bin | 0 -> 10939 bytes | |||
-rw-r--r-- | tiled/eventset.png | bin | 0 -> 548 bytes | |||
-rw-r--r-- | tiled/map1.tmx | 69 | ||||
-rw-r--r-- | tiled/map2.tmx | 83 | ||||
-rw-r--r-- | tiled/map3.tmx | 74 | ||||
-rw-r--r-- | tiled/map4.tmx | 105 | ||||
-rw-r--r-- | tiled/map5.tmx | 110 | ||||
-rw-r--r-- | tiled/map6.tmx | 120 | ||||
-rw-r--r-- | tiled/signs.png | bin | 0 -> 348 bytes | |||
-rw-r--r-- | tiled/signs_OLD.png | bin | 0 -> 271 bytes | |||
-rw-r--r-- | tiled/tiled.lua | 244 | ||||
-rw-r--r-- | tiled/tileset.png | bin | 0 -> 6340 bytes |
12 files changed, 805 insertions, 0 deletions
diff --git a/tiled/atlas.png b/tiled/atlas.png Binary files differnew file mode 100644 index 0000000..e32d664 --- /dev/null +++ b/tiled/atlas.png diff --git a/tiled/eventset.png b/tiled/eventset.png Binary files differnew file mode 100644 index 0000000..929c3da --- /dev/null +++ b/tiled/eventset.png diff --git a/tiled/map1.tmx b/tiled/map1.tmx new file mode 100644 index 0000000..376c292 --- /dev/null +++ b/tiled/map1.tmx @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.0" orientation="orthogonal" renderorder="right-down" width="70" height="40" tilewidth="16" tileheight="16" nextobjectid="1"> + <tileset firstgid="1" name="eventset" tilewidth="16" tileheight="16" tilecount="16" columns="4"> + <image source="eventset.png" width="64" height="64"/> + <tile id="1"> + <properties> + <property name="portal" value="1"/> + <property name="target" value="2-1"/> + </properties> + </tile> + <tile id="2"> + <properties> + <property name="start" value="player2"/> + </properties> + </tile> + <tile id="3"> + <properties> + <property name="floor" value="true"/> + </properties> + </tile> + <tile id="4"> + <properties> + <property name="lowest" value="true"/> + </properties> + </tile> + <tile id="5"> + <properties> + <property name="id" value="3"/> + <property name="portal" value="true"/> + </properties> + </tile> + <tile id="7"> + <properties> + <property name="block" value="true"/> + </properties> + </tile> + </tileset> + <tileset firstgid="17" name="atlas" tilewidth="16" tileheight="16" tilecount="1024" columns="32"> + <image source="atlas.png" width="512" height="512"/> + </tileset> + <tileset firstgid="1041" name="signs" tilewidth="16" tileheight="16" tilecount="4" columns="4"> + <image source="signs.png" width="64" height="16"/> + </tileset> + <layer name="bg" width="70" height="40"> + <data encoding="base64" compression="zlib"> + eJztzkVylGEYhdE/BPdi3nHreDEnuOsGsAT3DQQI7rABXINvAHdnAzjBbQPImbGFrq/eqnumT91clmUllFJGORVUUkU1NdRSR556GmikiWZaaCWXSG8UbYxmDGMZx3gmMJFJTGYKU5nGdGYwk1nMZk5CvbnMYz4LWEg7HSxiMUtYyjKWs4KVrGI1a1jLuoR6naxnAxvpYhOb2cJWtrGdHexkF7vZw172sZ8DCfUOcojDHOEoxzjOCU5yitOcoZuznOM8F7jIJS4n1LvCVa5xnRvc5Ba3ucNd7nGfBzzkEY95wlOe8Tyh3gte8orXvOEt73hPDx/4yCc+84WvfOM7P/jJr4R6v/nDX7IioxfF9KYPfelHfwYwkEEMZghDGcbwonR6OUoopYxyKqikimpqqKWOPPU00EgTzbTQmlAvH0IIIRtRAB8K0cgC+BBCCCGEEEIIIYQQQgghhBBC+O8fgFh8kg== + </data> + </layer> + <layer name="trees" width="70" height="40"> + <data encoding="base64" compression="zlib"> + eJzt0MkNwlAQRMGRHQVkAmmy5gHGzoM1HDoBFokT+lXSu/VlpgoAAH6z6qrWadN93m6z2aX9F9t/d8iNxzSkWV81719vT9mMaWrgL+fceEnXtMhPlm/+csvmnh4N/AUAAAAAAACAdjwBV0ANmg== + </data> + </layer> + <layer name="main" width="70" height="40"> + <data encoding="base64" compression="zlib"> + eJzt0DEKwjAYhuE/R6i2k6cQwcGeQkc9hrviGTyKJ9H2IrWDQxc/sdAQdHBJJbwPvCQpHZLfDAAAAADi2Duzq33upipVf9l3Y1w4krPm0mi9q1YddD4G3xobzic3fJ+5kS4dwUVvK1Sm5n15f371sPeae+eJ1qkqE55L5c1j4e3DlsF/q8Tn0upt6x/bqK3aJTwXAAAAAAAAAAAA/Kcn5RgnOg== + </data> + </layer> + <layer name="signs" width="70" height="40"> + <data encoding="base64" compression="zlib"> + eJztybEJADAIADAHH7D/H9sPdBOEZE0EAADAvsr+3/AAAAAAAAAAcNUHZv8ALA== + </data> + </layer> + <layer name="events" width="70" height="40"> + <data encoding="base64" compression="zlib"> + eJzt0MEJACAQA8FDtP+WbcCXDy/IDOQftgoAAHhpdB8g0rzc73Q50wUA8q3uAwAAAABAtA3ReQCw + </data> + </layer> +</map> diff --git a/tiled/map2.tmx b/tiled/map2.tmx new file mode 100644 index 0000000..0fba89a --- /dev/null +++ b/tiled/map2.tmx @@ -0,0 +1,83 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.0" orientation="orthogonal" renderorder="right-down" width="70" height="45" tilewidth="16" tileheight="16" nextobjectid="1"> + <tileset firstgid="1" name="atlas" tilewidth="16" tileheight="16" tilecount="1024" columns="32"> + <image source="atlas.png" width="512" height="512"/> + </tileset> + <tileset firstgid="1025" name="eventset" tilewidth="16" tileheight="16" tilecount="16" columns="4"> + <image source="eventset.png" width="64" height="64"/> + <tile id="1"> + <properties> + <property name="portal" value="1"/> + <property name="target" value="1-1"/> + </properties> + </tile> + <tile id="2"> + <properties> + <property name="portal" value="2"/> + <property name="target" value="3-1"/> + </properties> + </tile> + <tile id="3"> + <properties> + <property name="floor" value="true"/> + </properties> + </tile> + <tile id="4"> + <properties> + <property name="lowest" value="true"/> + </properties> + </tile> + <tile id="5"> + <properties> + <property name="portal" value="true"/> + </properties> + </tile> + <tile id="7"> + <properties> + <property name="block" value="true"/> + </properties> + </tile> + <tile id="12"> + <properties> + <property name="checkpoint" value="true"/> + </properties> + </tile> + </tileset> + <tileset firstgid="1041" name="signs" tilewidth="16" tileheight="16" tilecount="4" columns="4"> + <image source="signs.png" width="64" height="16"/> + </tileset> + <layer name="bg" width="70" height="45"> + <data encoding="base64" compression="zlib"> + eJzt1XdSU1EUx/GXBSSUAAkQygbsBQuoG7Bhw+4GbNiwoG7A3rsbsKCIvWzAhiA21A3YRaWp3wxk5s0Vk5ec6/Aczp35/PfOL+eeeS8n5DhOFrKRg1yEkYd8FCCCKApRhGLEUIJSlKEcQYQEedJ6sx/JGY4RGIlRGI0xGItxGI8KTMBETMJkVKIKUzAV0zBMmCetN/uRnBmYiVmYjWrMwVzMw3wsQA0WYhEWYwmWYhmWYwWmC/Ok9WY/krMKq7EGa1GLdViPDdiITajDZmzBVmxDPbZjB3ZipTBPWm/2Izm7sQd7sQ/7cQAHcQiHcQRHcQzHcQIncQqncQZnsUuYJ603+5Gc87iAi2jAJVxGI66gCVdxDddxAzdxC7dxB3dxD+eEedJ6sx/JeYCHeITHaMYTtKAVT9GGZ3iOF3iJV2jHa7zBW9wX5knrzX4ke+09PuAjPuEzvuArOvAN3/EDnehCN3rQi5/4FR9wwHHeCfOk9WY/kr0Woj6cpmLEUIJSlKEcwUBfXhaykYPc/po85CfJjHmsL0AEURSiKEk/kr2W7kz+F9K9Ntj9/yvSvTbY/dtkay/G95r7e7TRW4ulWTc7f+a1Jcm2uRfb++eS4LXnVHvD/WyqveHl9/62hwZ61sZe7DXmEnTlJ9sHqfZGOJDe3rC9h2zlJXidc9cQYL4vXuYcr3PP2UYffsvLZC4RS737WSbfkfl/ZYPf8jJ9XxLvqa17+C3PPZdoBmzew0950rnYuovf8kIBpZRSSimllFJKKaWUUkqpoek3zxlDIw== + </data> + </layer> + <layer name="plants" width="70" height="45"> + <data encoding="base64" compression="zlib"> + eJzt17kNwkAQheGRnQBtcNMVdMJVCFcAVMEVAE3xEgcIJ6yNvIz/T3rhSjtPWmnHDAAAAACA740Ts0lS9S3iM1UnM3r5sFIn64K9zHV+oSwd9XvSLOeC82x0fqvsHPVShov6uCo3ekHkGqlZU2mlVd8kLgP1MVRG9AIAqBmPe08Z2Hvy1XHv2WvWg3J0PHM/4A98Vx8P5RlRL6F7Tsj8/yTbc7zPiXfs/fmy99BWOkpX6dETAAAAfugFJZkXWQ== + </data> + </layer> + <layer name="treetrunks" width="70" height="45"> + <data encoding="base64" compression="zlib"> + eJzt2MkNwjAQBVCTnFi64MAS2gAhUQV0AgfWKuDAWgUgsZYRCuEfyIEoRCEkdoz/k+aI8HxbY4MQRERERERERJQFFVuIqq16FfLl0XMBVUSVDOz/kxqyqKMcVIO50B8ZWkKMUGNL9UqyZYk8Vqi1Qbl48z/MCXmcURcNc2nm4n3Om/8mmmCfp6iZhvudpg3y2KJ2zOXNFXncUHfmYqQod4iJTL5D4nBi3tVxyXgHlyXufxd99BLoRYd38DdnpY8+Bgn0ovM7OMgcfSx8vXiz3OTZtUcmB18uWcqDv9+D6TC3VFAxt1qS7/IwR0Vraav52sjcVy5p5+P/D6aTobMRxg1Y5+PHtct+4+pClzNBRETpewJlgiX+ + </data> + </layer> + <layer name="main" width="70" height="45"> + <data encoding="base64" compression="zlib"> + eJztWFluE0EUnA6OYwchzgAhzsItICuERVwhiEVivwIICHxAuEJI2MRyBXASNgG5QuI4bBJnoErTT/Pc9NgxHiWTqEsq9awev+pXr99MFAUEBAQEBAQEBAQEBAQEBGSFiy3Om5R7boN3wLvgDHgPvJ/ye3Iu75g2cUwzLa5jjKKL1mceXACfgE/BZ+Bz8EWT32p2Li+4aeJ4foJv2+Q7cAlcBt+DH8CP4Cfwc5NnuvmVR8xBFwOuYnstSsZak/2aOl4HN8Dv4I8o1vdXC+r8WsGzX4GvwTc+o24TqvgvB8AesGQ1Kln2pezvsWOX3S6CA/YaatZrYq5G/pHsBr/ZY+tRvL2SI23mrC6MuaJGOebb7/Ocpy6D4JDVmBxWdPe7LY3aFm3ykDuiy2AH1LpUFIdTxorSwqX4k/qcaVObbrAI9oAlsNyBLjU8e6JDjoHjdnsSPLYJVlN0MTYHr4M3rC5TJqnzVXAR/O2JpR+sgAPgIDjUgS7bBc7HUXAEHPVoOws+Mo19gNR/+m2vJ5dGwTFwHJwAJ7csmq0FNdF9AOt80frxcIrHzoHnwQtR6z41T2DvIp7Q3uD6Ld5gr3nWNGpStJqUbA1P02UngvGKJ1Yd9ipvsNe8ZWLfsDcSTcjd5g/miWjCWKX/kVF7g2vkY9Ooh2iyG0AtxCfURDyh13jRRXujapJaIv3kbtFE1hFqQZ+wp3U1cdei41YXrlXrYB3csOu6nMsT5D1P18m0mklMOzUzrRfcybVzyiTzznfEayYmc2DN7uuaSUjdZB1J65GzyIGXpvV7ucwpe0HOYTt9MGM/YRr7SXnOJRy/bGPkO2IBXLaePwT2e/oJ1of9XfE1vjpSyChXvuA3vprku48vr6XWy3y20wdL7FdN3E+yFvB7Ab2hva49r3tVd+7lHjk/4tSSZrkisUke6LkSv0p/sw/a/zHJ9w3Ja+mLJb/pZfq23T6Y6+KS4oJJvlX53kOyhmhBDRhb2XqTcUmMnCvxq/iUxxkz1yy5TnK4YMeKXcseYHzYpnc5v3yvYO5rfUQbt65mBeqhc71s45XvOgVnW/xKny6q2GXsz0ALF6KN1oXzUDaN3zl1XpObqXmnbf06CZ4y8T5H7X2pXz4dGNus8p/49Ijxv3t2qoVPG3mGq4+sQTUbh3jX5zfxv8R9xd6vPSF1sGh1qHhiHMs4vixQt/9RtJk3ic9kPvm9pM+kr9OSBxwPmsY1TPoXrcNOQt3571Xz7/c2d52W95uCk3dLKify2sP+L+g1V6tx41+nfdcFBAQEBAQI/gKKMkyD + </data> + </layer> + <layer name="signs" width="70" height="45"> + <data encoding="base64" compression="zlib"> + eJzt1sEJACAMBME80oBi/7WmASE/hTBTwb2OjQAAAACAuU7+XgDQ274KAGC8F823dCUAAABcFc8tAFo= + </data> + </layer> + <layer name="events" width="70" height="45"> + <properties> + <property name="portal" value="2"/> + <property name="target" value="3-1"/> + </properties> + <data encoding="base64" compression="zlib"> + eJzt1k0OAiEMhmFUXHosvYm38e/IkqjJ7CwDtNPyPkkTF0bSbzrFlAAAAAAAAHQdsvy7OX8qktZ+fplEzKVX1Z65ZT1z0chUi3UekmxOBrlZZ+FhdjScS11S/2y853stdduldC/1KPUs9fp+XtaS535H8T4HI8y0f/71OuNOlvRLJvJcopnt2UvMsCdqe7TOZK9wxpr/7Vq5SH6v5XyvMz76LtvS+996l/fuwzKb2h6195f2nvR2X/WaU81517S2p2g5SLTkAsDGMcD7F6EHQOINSDISEA== + </data> + </layer> +</map> diff --git a/tiled/map3.tmx b/tiled/map3.tmx new file mode 100644 index 0000000..991b7b1 --- /dev/null +++ b/tiled/map3.tmx @@ -0,0 +1,74 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.0" orientation="orthogonal" renderorder="right-down" width="100" height="50" tilewidth="16" tileheight="16" nextobjectid="1"> + <tileset firstgid="1" name="atlas" tilewidth="16" tileheight="16" tilecount="1024" columns="32"> + <image source="atlas.png" width="512" height="512"/> + </tileset> + <tileset firstgid="1025" name="eventset" tilewidth="16" tileheight="16" tilecount="16" columns="4"> + <image source="eventset.png" width="64" height="64"/> + <tile id="1"> + <properties> + <property name="portal" value="1"/> + <property name="target" value="2-2"/> + </properties> + </tile> + <tile id="2"> + <properties> + <property name="portal" value="2"/> + <property name="target" value="4-1"/> + </properties> + </tile> + <tile id="3"> + <properties> + <property name="floor" value="true"/> + </properties> + </tile> + <tile id="4"> + <properties> + <property name="lowest" value="true"/> + </properties> + </tile> + <tile id="5"> + <properties> + <property name="portal" value="true"/> + </properties> + </tile> + <tile id="7"> + <properties> + <property name="block" value="true"/> + </properties> + </tile> + <tile id="12"> + <properties> + <property name="checkpoint" value="true"/> + </properties> + </tile> + </tileset> + <tileset firstgid="1041" name="signs" tilewidth="16" tileheight="16" tilecount="4" columns="4"> + <image source="signs.png" width="64" height="16"/> + </tileset> + <layer name="bg" width="100" height="50"> + <data encoding="base64" compression="zlib"> + eJzt2XVuG0EYxuH1AYJOYoecXKDM3AuUmXuBpsx4gTJzL1Bm7gXKzL1ACimn+IuykarKY83OzG6n0ffHo0gTz/vO5svG8iYdBEEFKlGFDLKoRg1qUYd65NCARhShGCUoRRnKkS6w7rpHJ892v+l5THt7oTf6oC/6oT8GYCAGYTCGYCiGYTi6oCu6oTt6oGeYp1p33aOTZ7vf9DymveMwHhMwEZMwGVMwFdMwHTMwE7MwGyMwEqMwGmMwNsxTrbvu0cmz3W96HtPehViExViCpViG5ViBlViF1ViDtViHOWjCXMzDfCwI81Trrnt08mz3m57HtHcrtmE7dmAndmE39mAv9mE/DuAgDmE9NmAjNmEztoR5qnXXPTp5tvtNz2PaexKncBpncBbncB4XcBGXcBlXcBXXcBhHcBTHcBwnwjzVuusenTyd/W9iOI/pue/iHu7jAR7iER7jCZ7iGZ7jBV7iFa7jBm7iFm7jTpinWnfdo5Nnu9/0PKa97/EBH/EJn/EFX9GKb/iOH/iJXwhSQdDMl9dB++/WW7xDS5inWnfdo5Nnu9/0PKa9aToqUIkqZJBFNWpQizrUI4cGNKIIxShBKcpQnmrPU6277tHJs91veh7T3uZACKHSIoQQQgghRCdm+5k/l+cZQi6Vf911j6tnFXFmR33+YvuZP5fndTnFuuseV88q4syO+vyl0IxbNbi4P0x7bPKSyo6q0Izbvv/njFXXYnt/mPbY5CWV7XIeGcNriToP0x6bvKSyo4rynqR7r0f9e2XaY5OXVLbr+6Pj3oz7/jDpsclLKjuqbEpPoWv5+7Ud89DNNu2xyUsqO655qPpdzyNKj6ufW5zZUbXdo0IIIYQQQnRWrv+f8q+v538n8/CLzMMvMg+/yDz8IvPwi8zDLzIPv8g8/CLz8IvMwy8yD7/IPPwi8/CLzMMvMg+//Ab3FJwp + </data> + </layer> + <layer name="trees" width="100" height="50"> + <data encoding="base64" compression="zlib"> + eJztlmtu00AURscJQQQk9hAglRoEiyBNeFRQttBKDfCDQpfAo5TAKoDSJCAoW8ijCQ/x2AJtCaJIsAWOlUSZUDsQJNc2+o50ZOvaM76eO7auMUIIIYQQQgghhBBCCCGEEEIIIYQQIq68cIx5iRv4ygk7m+AoJYy5glcTYWcynvfU4AN+xFo/ViPnZ/j8L3Kf556FiL+jyz1yXMX7HrmWiT3AhyG+xx2efRdXcI1a/MRPWOfaG2Jv8R2W/zDPLe65HYN6rJNjBaseuU6y/4LiiVsHfIo/qMMhXMIbeBOXsWqG34wfjxj/OAb1aJNjB1975GrvvyBI4UHT2+sNvMTazuFlZ3je5Nkt3MSjmHX2msNv1jxNbOFFa546Yxu4S/x7MK8Te7I4hZ9xy4zue/fcjbvnXzieYi1P+9TDNd0f547f5v4dvP7bt1QhdpjjkRD7Afv/GzUKWESH9UlgEg9gCrvGf+399JrHvt4xvW/pZIj1sP+/UWMRS5hhfY7hcTzRX7tBLDNhTcb51YRfD/v/GzXaZnTPnsE8zmABi3gWz+F5vOATt8cMzvM+c7lzzIZYj0nY7x692z/GaY32k6B79GvBTR170kl6jeRoLC49+v/INLXIYdaqyaBHF0IIQY8adgJiBPW1QgghhBBCCCGEEEL8G78A/dZihQ== + </data> + </layer> + <layer name="main" width="100" height="50"> + <data encoding="base64" compression="zlib"> + eJztmGlOFEEYhqtQNo3eAZUBNXoIERjcUK/gSqKIXgHccPcKgEuM2xGUAX8YtyPggEaN2w18v3RVpqboRpjunm5m3id50j3f9NR0V1XX8ilFCCGEEEIIIYQQQgghhBBCVksrbIPtsAN21hgnydANC7AH9sKdNcZJfDTshwNwEBbhUI1xEh9bj6fhGXgWjtQQHwkpOyo+CW8kcO+Nit+33XrXq4g/iSg3Kv6/70g83q4xnjZP0VmewefwBQfSzHmHNngPP8DHWd9Mhky2ZH0HAdIe0/A3/AhfIfYazsJr8Hq2t9d0/EQb/IIdcBRegGPwInyk1v87cwjPcRgegcO60teGQ2Li8RTGbLsHtX3d/u9RXX0ubsF7uhV26+Xugt9U9TtTUtXPJ2VcRew7/JH8o8TmHO7vvOljbl8bM/FRL3Yphfawe9AF+FlV93s5l7icL+G4B22xN6I9xE7nWcq4flFVnsOW+RCxTThuzuF64Cbu6Ra8De/Au/CeOQ+L30/hGeweVKPsFrgBboSt8IuKrvsow8pxv3+jgndpdw7bIwlO1fi7y/CKCsaWkoltQx1thztM3XXpINa1xjZZya8q+/bIY55Q5q4HOM6rYGyRfrtPB/bB/bAfDsBBWIRD8EBE3P2NPe+LKEvKOJhhe+QxT2jnLhmTpM826vgRRliesF6MwwkVjE8u7tyVdX+tNzLG+3nCeuG2h8wXsg7N29iZNXbfIfXRrqrrJul6moLTcEYF80Uex86ssWN3WN0kVU8nUP5JXdmXzalg7rbrnCzGzrzijt12XingvAf26mTqaRzlTDj7MtnP+fuJeo+decH2VZunfmnmTplXymY96K4fhbj1NKWD3N+MrGvNvqzNaYtizPLXM7avSp5a8qKf6rCWmcV/lOAcnDdtUDBHu65oVmxflTz1H/hXV3Jufm7NzzFKDu6YXp6n8z+710resWz2YEshe7xmx/ZVF8ndydju59bsXO/nsxec38h84H92r00j79hISF9djMhB+HuxsBzjSvkL9zzNvCMhhBBCCCGEEJIm/wAtkMkQ + </data> + </layer> + <layer name="signs" width="100" height="50"> + <data encoding="base64" compression="zlib"> + eJzt100Kg0AMBtBY3PdHz9k7Wo9Su+8RGvEAaqs4lPfgYzbDEBgISQQAAAAAAADfaOpt7wEAAPB/boXshG0hdQAwuerLAIuYY+eNO0eX5yPTH10M8cwMmdfRhQBQpHe139vmpnXOp4hL5r7jnwAAAAD86gMFzQct + </data> + </layer> + <layer name="events" width="100" height="50"> + <data encoding="base64" compression="zlib"> + eJzt2EEOgyAQBVBjMXHT+1+32yYqLS3tDPpewsYNMB9x4jQBAAAAAAAjm0v0CiBOKdvxyXMAgJ70Gbns5bHKp7v7mzXd68lr78xNVl95ddZb8xhNbX//2G/L/D0HdfLI5ap5ZOtFMtbo17Kej2zrAXiW9e6MFtGDyCHWKD3nVcjiWEQdZHFMPXJpuTvO8i8CANhafKsBgAE8ADCABsw= + </data> + </layer> +</map> diff --git a/tiled/map4.tmx b/tiled/map4.tmx new file mode 100644 index 0000000..ae383e9 --- /dev/null +++ b/tiled/map4.tmx @@ -0,0 +1,105 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.0" orientation="orthogonal" renderorder="right-down" width="80" height="50" tilewidth="16" tileheight="16" nextobjectid="1"> + <tileset firstgid="1" name="atlas" tilewidth="16" tileheight="16" tilecount="1024" columns="32"> + <image source="atlas.png" width="512" height="512"/> + </tileset> + <tileset firstgid="1025" name="eventset" tilewidth="16" tileheight="16" tilecount="16" columns="4"> + <image source="eventset.png" width="64" height="64"/> + <tile id="1"> + <properties> + <property name="portal" value="1"/> + <property name="target" value="3-2"/> + </properties> + </tile> + <tile id="2"> + <properties> + <property name="portal" value="2"/> + <property name="target" value="5-1"/> + </properties> + </tile> + <tile id="3"> + <properties> + <property name="floor" value="true"/> + </properties> + </tile> + <tile id="4"> + <properties> + <property name="lowest" value="true"/> + </properties> + </tile> + <tile id="5"> + <properties> + <property name="portal" value="3"/> + <property name="target" value="6-1"/> + </properties> + </tile> + <tile id="7"> + <properties> + <property name="block" value="true"/> + </properties> + </tile> + <tile id="8"> + <properties> + <property name="spikes" value="true"/> + </properties> + </tile> + <tile id="9"> + <properties> + <property name="turnaround" value="true"/> + </properties> + </tile> + <tile id="10"> + <properties> + <property name="movingplatform" value="up"/> + </properties> + </tile> + <tile id="12"> + <properties> + <property name="checkpoint" value="true"/> + </properties> + </tile> + <tile id="15"> + <properties> + <property name="stop" value="true"/> + </properties> + </tile> + </tileset> + <tileset firstgid="1041" name="signs" tilewidth="16" tileheight="16" tilecount="4" columns="4"> + <image source="signs.png" width="64" height="16"/> + </tileset> + <layer name="bg" width="80" height="50"> + <data encoding="base64" compression="zlib"> + eJzt1klSFEEYxfHsA9CMDa0L8QI4yy2cGFyiF3AeluoFUFBxCVwAEQeWygUQ56VyAcB5Wgh/FhnRC1Iyk8qsXrzFLyoq4ov3KjKzKmrEGHMGZ9GCKlrRhnZ0oBNdqKHbc87mjSTOd83l6r2Bm7iFPuzDfhzAQRzCYRzBUfR7ztm81PmuuVy9k5jCNI7hOE7gJE5hAIMYwjBOe87ZvNT5rrlcvc/xAgs4h/O4gIu4hMu4gqu4huueczYvdb5rLlfvR3zCMkZxG3cwhnHcxT3cxwQeeM7ZvNT5rrlcvf+wDlMxZobLQ8ziEebwGE/wFM8wb/zmbF7qfNdcrt493PdiLxa5f4klvMJrvMFbvMN7fDB+czYvdb5rLlfvZo+1wv0q1vAZX/AV3/AdP/DT+M3ZvNT5rrlcvY09LaiiFW1oRwc60YUauj3nbF7qfNdcrt6YffrrYSfnLyS/yPMX0xuzT5s5da67sLvi7ok9fyH5RZ6/mN6Ynh5HdlHrF5Jf5PrF9Mac81/4jT+J3t+Q/CLf35je2H2y5zzV+fPNL/r8hfY29tQj/K+nniHfJVfvTntcXUWt33b5qdbPt7es71NoXmOuz/OWsX45v0+heVutXzM8b1nfp9C8rdavGZ63rO9T7Bo22/NWRUREJLtm+x/w/QdMlR2q7P0TEREREREREREREREREbE2AFiabOs= + </data> + </layer> + <layer name="plants" width="80" height="50"> + <data encoding="base64" compression="zlib"> + eJzt11kOgjAUheGGnWrisA3naRXO0yoUZzfledfYpiUQ6P8l502sHCxwjQEAAAAAAACA35qJMS2lnRT9S8ppqN5Gypj+vGzU21bZ0Z+Xm3q7Kw/6A0qjiGduTevVuU9466i7bsX6y/P9b641FgHr9HRsXxlU7Bq4Oum8zwHnvtSxK2UdaX+hUvV2Ua4l7C/mfZMF9k2YLPfNRN8zVWZcDy979XZQjvT3peHwmad6eylv+gNQEOb5MLZ5PvZ508Y2zzNv/meb513mTd6DkaeU/xoAAAAQrQ//nypV + </data> + </layer> + <layer name="treetrunks" width="80" height="50"> + <data encoding="base64" compression="zlib"> + eJzt1sEJwkAQBdAhOcU2VIIpTO3DWIlaiaYv5+LJgAEhIex78G9zGD4LsxEAAAAAAKzFpYroM9dq6U3W6Za93TOPgvrb1hG7+vdcO2Hmmb29MkNB/QEwnyZv0WbCPWLcIbvr9DfqmDllzksvMoPP32/vLUBR3ND/uKEAAAAAAPDtDd7dCNw= + </data> + </layer> + <layer name="main" width="80" height="50"> + <data encoding="base64" compression="zlib"> + eJztmFtu00AYhccR964CIUKhq+DS0pBy3UJJaKWWAFsA+sR9C9C+AksAWl6hS+DSRqIPLTvomWaMfiYztvENOzmf9HXkS+zJkRsfWylCCCGEEEIIIYQQQggheTDR+N8zqDdTzC8Ri571Mr+5QKmr8Bq8Dm/Am2JZrrf3uRX4zz2PbbdhB+7k+q2KJeIr/UHnt2j2XcKfZXgX9uA9eF8sy/X2Pg8iTvYQ2x7Bx3AiyaRqhLz+nuC7PYXP4HP4Ar4Uy3K9vc+riFxeY9sbuAqnRji/ogjzO5Qiv6rf38rM71yK/Kp+f2N+2Shjfp+Q2Skrv8PwCPwAP6rB/fwoxmPweMnzy0IZ8/uBbK4Y2ya/07AJv8HvanAfP4NxEp5NML+o/F19K65jpSVJ/yvivNNwBgY4dgM24WUsz8KWZ34SO/+eyN/Vt+I6VlraYn6+/uc6byfjefXnu/Ck+d/W2U1iXFB/d31ffnb+fTU4Rt9jXMfKA1//0+ct6to8j89fgLOw5TiWLz9f/q7sqsC/XJt5Evf7HJd/VYi6NjXhM659jfqWXet/qeHn46rff/MifMa1r1Hfsmv9iWD4+Xhc8pMdOYt2vx6X/HRHXmd+qdEd+Sec0fdC8Xt+CU6LMdzuWi/7dci45FcUzC8bdchPvl/vmtFl13SMtxjfwfcl9K065Cffr6+Y0eWK6Rhf4Fe4yfwOkO/X18zocs3cI3fhHvzt6cHj1p/D7rEBP5vRpatvJO3Laftzuwb5hd1jC26b0WX4Dk+/98ja85L2v1FEv/e4o5hfVi4G/n6cV38mhBBC6sA+f57HuQ== + </data> + </layer> + <layer name="signs" width="80" height="50"> + <data encoding="base64" compression="zlib"> + eJzt1jENAAAIwDAODIB/sUjgJCStgp2LAAAAAAAAAAAAADad1wUAAPBTeWkAAHhlADEZACw= + </data> + </layer> + <layer name="spikes" width="80" height="50"> + <data encoding="base64" compression="zlib"> + eJzt1sEJACAMBMEY7b9mEfFnChBn4B6BFLARAAAAAAAAAAAAQM96AADwm5Z71b06eVxa+fyllgYAgGdNLVUASg== + </data> + </layer> + <layer name="events" width="80" height="50"> + <data encoding="base64" compression="zlib"> + eJzt2NEKwiAUBuBRBkUEvf/TduFVQq151JV9H3ixXcj4ncezLQsAAAAAzOOe9n4CYISjvU5nKdWNT+fdyvmW1eZHJr8Y+cXIL+Zdfme5bhY9z8lqc+vRY9W4FvP+2ruwV26Mt7a2N2vd3CW9Hjyr/XZWqzL5xcgPvsvBnmIAdT6m9qwse+G16/L+LL10i96jR/9S/t+Yxaj8ZiY/gLZO6iB/6gFmoAhP + </data> + </layer> +</map> diff --git a/tiled/map5.tmx b/tiled/map5.tmx new file mode 100644 index 0000000..e3091e3 --- /dev/null +++ b/tiled/map5.tmx @@ -0,0 +1,110 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.0" orientation="orthogonal" renderorder="right-down" width="100" height="45" tilewidth="16" tileheight="16" nextobjectid="1"> + <tileset firstgid="1" name="eventset" tilewidth="16" tileheight="16" tilecount="16" columns="4"> + <image source="eventset.png" width="64" height="64"/> + <tile id="1"> + <properties> + <property name="portal" value="1"/> + <property name="target" value="4-2"/> + </properties> + </tile> + <tile id="2"> + <properties> + <property name="portal" value="2"/> + <property name="target" value="6-1"/> + </properties> + </tile> + <tile id="3"> + <properties> + <property name="floor" value="true"/> + </properties> + </tile> + <tile id="4"> + <properties> + <property name="lowest" value="true"/> + </properties> + </tile> + <tile id="5"> + <properties> + <property name="portal" value="3"/> + <property name="target" value="6-1"/> + </properties> + </tile> + <tile id="7"> + <properties> + <property name="block" value="true"/> + </properties> + </tile> + <tile id="8"> + <properties> + <property name="spikes" value="true"/> + </properties> + </tile> + <tile id="9"> + <properties> + <property name="movingplatform" value="down"/> + </properties> + </tile> + <tile id="10"> + <properties> + <property name="movingplatform" value="up"/> + </properties> + </tile> + <tile id="12"> + <properties> + <property name="checkpoint" value="true"/> + </properties> + </tile> + <tile id="14"> + <properties> + <property name="movingplatform" value="right"/> + </properties> + </tile> + <tile id="15"> + <properties> + <property name="stop" value="true"/> + </properties> + </tile> + </tileset> + <tileset firstgid="17" name="signs" tilewidth="16" tileheight="16" tilecount="4" columns="4"> + <image source="signs.png" width="64" height="16"/> + </tileset> + <tileset firstgid="21" name="atlas" tilewidth="16" tileheight="16" tilecount="1024" columns="32"> + <image source="atlas.png" width="512" height="512"/> + </tileset> + <layer name="bg" width="100" height="45"> + <data encoding="base64" compression="zlib"> + eJzt07dNBFEYxPE9vA+ABji8DYAG8KYLvOkCb8KDBvAmBBrAmxBoAG9CoAD+BEgkLE/Le9ILJvgFK303mtHtJoIgWMAimtCMFrSiDe3oQCe60G14Zysv4aCfi0xbm3ewiz30oBd96McABjGEYYxg1PDOVp6Lfj5vvsQVrjGGcUxgElOYxgxmMYd5wztbeS76+bz5De/4wBKWsYJVrGEdG9jEFrYN72zluejn8+b8WBAUoBD7PB/gEEc4xglOcYZzXARmd7byXPTzeXM9GQ1oxA3Pt7jDPR7wiCc84wWvgdmdrTwX/Xze/NXtWwxJSEYKUpGGdGQgE1mGd7byXPTzefPPbkWIoxglKEUZylGBSlQZ3tnKc9HP581R3pU8A7byXPTzeXOUd+XrdzWoRV1Iro08F/183hylW3XI/xulW1iei34+b47y7WYjB7l/dLOR56Kfz5ujvivf35qtd+W3PBf9fN78s1tNBGHdbOS56Ofz5v92C9tsI89FP583x0VEREREREREREREREREREREREREREREPPAJYQJbxQ== + </data> + </layer> + <layer name="plants" width="100" height="45"> + <data encoding="base64" compression="zlib"> + eJzt2MttAjEQxnHDtkEfXCJBE9BJIhFog3dEqoCERxu8KYbvCFy8Ym12dvn/pDmsfLFnLHl2nAMAAAAAAEBI31XnuopeNe+dwKelGrWpkxmfqsXXk/WoJWH3Auf6qsXgyXp8BK5HlrtRFnOdf2EkB1nuRllsdf6dkRxYuhuxFKmnsnQ3AAA2TPQuTBU/nvdhqPWRYsw7EtVK+V0rNp48/2n9X7GkHlGdlN+z4uLJ817rB8WRegQ3U05/jeaVGSti6eS9gQDS9hd4jbT9BbJpJs7VU8yd0/YXsRSlry/zzP22fyhKX/8uM3erfX2jcv/9DjN3y732Yz2YuftZ/q8DAAAAAABA/q7mHjT2 + </data> + </layer> + <layer name="treetrunks" width="100" height="45"> + <data encoding="base64" compression="zlib"> + eJzt2EsOAUEUheHStQyPdXjbSGNZGGAZGGAZGGAjiCMhElEDkXR3Vf1fciMxcTntdKeMAQAAAAAgPlVrTM3mvQVeOsqiSx7wyCgxZqyZJHlvgoeFclhqVuRRCDvlsCeL4H32YF338YamGeH9vFGA7+zqwWYpn31i9+rBA12ICF113d++XPuu9/GW6vfpZzSD5ysQM9fZIGeG/5mqW2aa+Y8d4zob5MzwP2vlsNFs6fzMfeuSo3I4ac4e53FJ/HyuC7VLfM0jC+scPrNieY4okrYN97+PcHRLxvQ4vy2EVDkMNENHHmXrX8/7tOuvWta/nvdpVwAAAAAAAITnDllOMZ4= + </data> + </layer> + <layer name="main" width="100" height="45"> + <data encoding="base64" compression="zlib"> + eJztmXdy00AUxlcGjgA4jQwBrgCkQAYOASSxY0KAK0AoM6GEK+BQQucKJEDC0I4ACe0P2hEgBQb4duw3ft6sZFlry5Z538xvVlrL0krf9qeUSCQSiUQikUgkEolEIlHj9NxT6gU4AU56jS5NNHWnGl2C2ukzPPgCpsCVhPox2EJ+eHiXFOiDF4Mt4EcGx1kLoxbPZuMrYmhpP3rA/gT4cd4n36V9TINr4Dq4AW6y33g/2AbaQQfoBF3RHxkoah/N6sfmENdoP/y8qqQ58Bj0Fpk37kvSv/WBfjAA9kV8np/yqlA39PjB28cM8m7V+Fn1VjXtg+r5ON71OHinCt9av79ZJ/l9h8AwGAEZkHUvdpl030l1o4eNHws4f1bjZ9VbYf2Y9Erf3cYoyDE/cuy+E+AMOAvOqejtUesUnnEaTIC3OF8ES6pQN96DD6p5+yubXhvl5H7kA/532yvVc9OLTB3K6aereF4eTIOfOF8GK2AVrIFfKll+mKqmv+L1fAXvuwrWYn7vR3jeLJgDW8BWkAZtoB10WPrOJClp649FfOclPXaB3WAP2At6vcK40S9+xKplr9Q2h8AwOMKOR3T/aYxlSVLS/Gh15Rrkx4RPPs2fxsAxrzS3HvPJ+4P//I2z4P+ZaP50AVwEl8Dl4rktbxvoTljfRHsXfvtTYbDtYZk6aqnDlIbdA6f5U9BaxyRpY3dcY8SkpQ5TGnYPnOZPre6Hy5o4rPSa8Q64C+6B+yx9AB6G+G40fwr6/nw+Ze4LNLNoP7FS+4jDq2oV5Md85b8HiuKIfM+Z0jeqfB/mpXEd5bvMI5I4p63kx4zDvSmOyPecKf2hyvdhvhrXUb7LPKJRc1pXBfmx4HBfipNsiIjLniW1Td3uXnnr9xO5KI7gF2NqhLgPtRKPW7kQxQ9qm7rdfQPfA+7B4whPwFPl3le7ir//uIG5NgxzrtPtLK7L96gPIT3s2fdf+HHWYR5BMWXdzjaCTanCWsD2TmYc4SP4VMuPG1FmvewEXd76tWGYc50ewDc4mHKv69VIz5n0/Ir82AF2gl2pwlqAysrLbMYRfqvm9KMexLWG8Sxtk0hXKGOz+MGlYy9J9kOL4no8RjBQPO4rHqeL+fq8XnHuWon38ba+Phvwuy0/7jUlxfXMcYnie3ScYbjGuUUikUgkEolEIlHr6x9k/QMl + </data> + </layer> + <layer name="signs" width="100" height="45"> + <data encoding="base64" compression="zlib"> + eJztzsEJACAMALGuoLj/rK5QqVAoyfseFwEAAAAAAHnrcwcAAAAAAABQdboHHuzuAQAAAADGu3AnAEk= + </data> + </layer> + <layer name="spikes" width="100" height="45"> + <data encoding="base64" compression="zlib"> + eJzt1sEJACAMBMFgD8b+OxXRV8CXPmdguRYuAgAAAAAAAAAAAHg12i7LrgAAgLt+/jMAAAAA8McEmTYA3Q== + </data> + </layer> + <layer name="events" width="100" height="45"> + <data encoding="base64" compression="zlib"> + eJzt1k1OAkEQhuFCMBGNwa3eDOJOLoHeROEgmngQF9wDXVkkkzDg0MzIdPXf+yQVFvNDTX/T0y0CAAAAAMBpd6EbAGBmVBXikFMeE8exVNaZnPLo4rb6fdV601pqrWrHrw/Ov7JoSsrNY+td60N2Y/B55LxRQ/lSUh73Wg9aTwORudaX7I/xOmRzlZLyaHrPY3r+2Prxbao1k79ZPDac63P9d70XJeWx0HrWetHa6PfqW+tnYN8HeZzm2iv7sJ1/5AHkx7W23ph1gVS1Wa9zWCvOXXPb7GHHjmqrlDws9DFu5BGfkOM/NPiP1DAf4uI7j67fxD77SHVPm2seKfP1/CHzcF1/8Y9rLNWfv+u+ue19redG1/vENif7eJdj+vak0ucx5BFXHnU55CGJ9AgAAAA/LkM3AMDEL3mQEv0= + </data> + </layer> +</map> diff --git a/tiled/map6.tmx b/tiled/map6.tmx new file mode 100644 index 0000000..9d8b304 --- /dev/null +++ b/tiled/map6.tmx @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="UTF-8"?> +<map version="1.0" orientation="orthogonal" renderorder="right-down" width="80" height="65" tilewidth="16" tileheight="16" nextobjectid="1"> + <tileset firstgid="1" name="atlas" tilewidth="16" tileheight="16" tilecount="1024" columns="32"> + <image source="atlas.png" width="512" height="512"/> + </tileset> + <tileset firstgid="1025" name="eventset" tilewidth="16" tileheight="16" tilecount="16" columns="4"> + <image source="eventset.png" width="64" height="64"/> + <tile id="1"> + <properties> + <property name="portal" value="1"/> + <property name="target" value="5-2"/> + </properties> + </tile> + <tile id="2"> + <properties> + <property name="portal" value="2"/> + <property name="target" value="7-1"/> + </properties> + </tile> + <tile id="3"> + <properties> + <property name="floor" value="true"/> + </properties> + </tile> + <tile id="4"> + <properties> + <property name="lowest" value="true"/> + </properties> + </tile> + <tile id="5"> + <properties> + <property name="portal" value="3"/> + <property name="target" value="6-1"/> + </properties> + </tile> + <tile id="7"> + <properties> + <property name="block" value="true"/> + </properties> + </tile> + <tile id="8"> + <properties> + <property name="spikes" value="true"/> + </properties> + </tile> + <tile id="9"> + <properties> + <property name="movingplatform" value="down"/> + </properties> + </tile> + <tile id="10"> + <properties> + <property name="movingplatform" value="up"/> + </properties> + </tile> + <tile id="11"> + <properties> + <property name="fake" value="true"/> + </properties> + </tile> + <tile id="12"> + <properties> + <property name="checkpoint" value="true"/> + </properties> + </tile> + <tile id="13"> + <properties> + <property name="movingplatform" value="left"/> + </properties> + </tile> + <tile id="14"> + <properties> + <property name="movingplatform" value="right"/> + </properties> + </tile> + <tile id="15"> + <properties> + <property name="stop" value="true"/> + </properties> + </tile> + </tileset> + <tileset firstgid="1041" name="signs" tilewidth="16" tileheight="16" tilecount="4" columns="4"> + <image source="signs.png" width="64" height="16"/> + </tileset> + <layer name="bg" width="80" height="65"> + <data encoding="base64" compression="zlib"> + eJzt0VmWTgcUBeC/BlBVClVUFaomoC1NNMEEEE0kmmACEhE9wQQkekGECRDRRhcmoA8SQkxAE220yTcB/7oP977th2+dt7322qenVquNZBSjGcNHjGUc45nAx0xkEpMZzBCGMozhjKCRJprpRQu96UNfWmmjH/1pp4NOBjCQQXTRXUJe1X1mMotPmc1nfM4c5jKP+XzBAhayiClMZRqfMJ0ZdXbtKflPRfOq7vMNy1jOClayitWsYS3r+Jb1bGAji/mSr1jC1yyts2vZfyqaV3WfbWxnBzvZxQ/sZg97+ZF9/MR+DrCJ7/iezWxha51dy/5T0byq+xzlGMc5wUl+5RSnOcNZzvEb57nAQQ7xM4f5hSN1di37T0Xzqu5znd+5wU1u8Qd/cps7/MVd7vE397nIJS5zhatcq7Nr2X8qmld1n6c84zkveMm/vOI1b3jLO97zH7WGWu2B85BHPOYfntTZtew/Fc2ruk8fW/SllTb60Z92OuhkAAMZRBfdNNJEM71ooXedXcv+U9G8qvs0NZTrQ7uW/aeieVX3KXu/iIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiCjmf+jpWGQ= + </data> + </layer> + <layer name="plants" width="80" height="65"> + <data encoding="base64" compression="zlib"> + eJzt2TkOwkAMBdBRqOAmcE3We7BzDXZOhbsUUUI0gSLiPcnNKEX0C8vjSQkAAAAAIN+xSOlUfP5uOEhpNPj9//TNM7J7tchvHNlN5AcAAPBXFnFfXEatWtwbqdpFbvuog/yy3CK3e9RDfgAV0+iNs6i5HlmraY5Zx9kmaiu/Wk1zzDnOLlFX+dXq+xyjx3Sjx3SjxwAAAPyXnD2EN8xSzh7CG2YpZw/R990fAAAA3/MG3HQmtg== + </data> + </layer> + <layer name="treetrunks" width="80" height="65"> + <data encoding="base64" compression="zlib"> + eJzt2DEKAjEQBdCENOoxFFlXvIVH92KmSRMJLFkkGt4rhxTDL2aYhAAAAAAAAAAAAAAwxjWN7gDgdx3zjDyZk93WnN1dfl9xkesm59ENTOYZR3fAP2vtVLv20yPnsVSZtHZqqdfvi1J/RTMRAIA5HZK7Yo9b8ocHAABAnzd7mARG + </data> + </layer> + <layer name="main" width="80" height="65"> + <data encoding="base64" compression="zlib"> + eJztmutOE0EYhndNFChXIQpFehUeOBUP6C14NiDoLaCoiaByCxgP/7wFLIn6S29BaYyHH96C75edL5muU1l2utuh+z7Jk5ndbunwtvv18G0UEUIIIYQQQgghhBBCyMEYPdK5vQ534HvYgruO7XdxqUsMmobJ7yoyuQZfYf4afoN7sA2/WtufccwX+Avz331ZcVhofmtxks8Ixg8Yj2McgyfgSTOKf+LkmBocLeh1mD4nQkbz247/zczeTt82BRsF5dc4hPkJp5HHGXgWnos7t9O3NeEC8wtyrSGuqRsL1lrnMJ/3sNmj//sw5RcizM8P5ucH8/OD+fnB/PxgfvmpRcwvK0fhMTgEh+EInIo6P5OS7ozDCViHk/AUbPZ1ReFyHt+VL8DL8Ir53jwNZ+AsnIPz8E7fVhg2S8hsFd6D901+1+ENeBPegrf7t7zgeYrMNuALuFXB369d5x/Jjuv8KwPpxzyCj+GT8h625xR5/mnvRXoqabUf8wa+7e3DDgzSe3kAH8J101upWfPvUdI7+Bmxb+Wqoy2Mu44eyzicgHU4WULfKi96/pRRY1x1dA9j29FjmYYzcDZO+ltjxqL6VnnR86eMGpO3jrYCzk+e25fwI+afrP32e1/ZNSfdAw759af150eU1Gi9VsN+79uv5mhd24n+f+3HRRxzyXHcYqomym8wUlf0+MWA85PndhkOmxot87twJU6uRRjKsOYlcz/7vvZcrgNZsbbtcdlREyW/Neu41YDz0/q9CZ+Z+qTz5xlrlda1jS5/Z78x/TiSn33OqkVe9zBISH76vJZ13cMgwd+g/WB+fjA/P5ifH8zPjyrm5+pH5tkvVDE/7UfKdw3tR9r76xn3C1XsAbv6kVn2t1P7q0q3fuRB9xNCCCGEEOLLXwxPplk= + </data> + </layer> + <layer name="signs" width="80" height="65"> + <data encoding="base64" compression="zlib"> + eJzt2DENADAMA0EPJdDwB5u1DKKodwh+tJwAAAAAAAAAAAAAAL+5Z7oAAIBtyoYEAAAG+LMBAAB4Nc6mAEE= + </data> + </layer> + <layer name="spikes" width="80" height="65"> + <data encoding="base64" compression="zlib"> + eJztwTEBAAAAwqD1T20ND6AAAAAAAAAAAAAAAAAAAAAAAAAAAL4NUUAAAQ== + </data> + </layer> + <layer name="events" width="80" height="65"> + <data encoding="base64" compression="zlib"> + eJzt2csOgjAQBVCidYUa//9rjTsXSIdQKIPnJCxgQ3PpY0qHAQAAAICMXqV3C87tKt90so+JUuYvptVyk+M8+fFP7mX+PoPxq81r171nJY+M+QAATHmoa5oa5RliT82e9LE4e904WcUYfzn5bnVnPC/Yc15z7hIXyWHqX/iR89uyba368Rny61mrZMyv1uYec+QRtZizl56/R95j/VhHfgBATxe1Bxv6Vesuff7hDBgA2rhZUwF29waAIgVv + </data> + </layer> +</map> diff --git a/tiled/signs.png b/tiled/signs.png Binary files differnew file mode 100644 index 0000000..874ac34 --- /dev/null +++ b/tiled/signs.png diff --git a/tiled/signs_OLD.png b/tiled/signs_OLD.png Binary files differnew file mode 100644 index 0000000..70840d5 --- /dev/null +++ b/tiled/signs_OLD.png diff --git a/tiled/tiled.lua b/tiled/tiled.lua new file mode 100644 index 0000000..0e3b590 --- /dev/null +++ b/tiled/tiled.lua @@ -0,0 +1,244 @@ +-- see https://love2d.org/wiki/TiledMapLoader for latest version +-- loader for "tiled" map editor maps (.tmx,xml-based) http://www.mapeditor.org/ +-- supports multiple layers +-- NOTE : function ReplaceMapTileClass (tx,ty,oldTileType,newTileType,fun_callback) end +-- NOTE : function TransmuteMap (from_to_table) end -- from_to_table[old]=new +-- NOTE : function GetMousePosOnMap () return gMouseX+gCamX-gScreenW/2,gMouseY+gCamY-gScreenH/2 end + +kTileSize = 32 +kMapTileTypeEmpty = 0 +local floor = math.floor +local ceil = math.ceil +local max = math.max +local min = math.min +local abs = math.abs +gTileMap_LayerInvisByName = {} + +function TiledMap_Load (filepath,tilesize,spritepath_removeold,spritepath_prefix) + spritepath_removeold = spritepath_removeold or "../" + spritepath_prefix = spritepath_prefix or "" + kTileSize = tilesize or kTileSize or 32 + gTileGfx = {} + + local tiletype,layers = TiledMap_Parse(filepath) + gMapLayers = layers + for first_gid,path in pairs(tiletype) do + path = spritepath_prefix .. string.gsub(path,"^"..string.gsub(spritepath_removeold,"%.","%%."),"") + local raw = love.image.newImageData(path) + local w,h = raw:getWidth(),raw:getHeight() + local gid = first_gid + local e = kTileSize + for y=0,floor(h/kTileSize)-1 do + for x=0,floor(w/kTileSize)-1 do + local sprite = love.image.newImageData(kTileSize,kTileSize) + sprite:paste(raw,0,0,x*e,y*e,e,e) + gTileGfx[gid] = love.graphics.newImage(sprite) + gid = gid + 1 + end + end + end +end + +function TiledMap_GetMapW () return gMapLayers.width end +function TiledMap_GetMapH () return gMapLayers.height end + +-- returns the mapwidth actually used by tiles +function TiledMap_GetMapWUsed () + local maxx = 0 + local miny = 0 + local maxy = 0 + for layerid,layer in pairs(gMapLayers) do + if (type(layer) == "table") then for ty,row in pairs(layer) do + if (type(row) == "table") then for tx,t in pairs(row) do + if (t and t ~= kMapTileTypeEmpty) then + miny = min(miny,ty) + maxy = max(maxy,ty) + maxx = max(maxx,tx) + end + end end + end end + end + return maxx + 1,miny,maxy+1 +end + +-- x,y= position for nearest-distance(square,not round), z= layer, maxrad= optional limit for searching +-- returns x,y +-- if x,y can be far outside map, set a sensible maxrad, otherwise it'll get very slow since searching outside map isn't optimized +function TiledMap_GetNearestTileByTypeOnLayer (x,y,z,iTileType,maxrad) + local w = TiledMap_GetMapW() + local h = TiledMap_GetMapW() + local maxrad2 = max(x,w-x,y,h-y) if (maxrad) then maxrad2 = min(maxrad2,maxrad) end + if (TiledMap_GetMapTile(x,y,z) == iTileType) then return x,y end + for r = 1,maxrad2 do + for i=-r,r do + local xa,ya = x+i,y-r if (TiledMap_GetMapTile(xa,ya,z) == iTileType) then return xa,ya end -- top + local xa,ya = x+i,y+r if (TiledMap_GetMapTile(xa,ya,z) == iTileType) then return xa,ya end -- bot + local xa,ya = x-r,y+i if (TiledMap_GetMapTile(xa,ya,z) == iTileType) then return xa,ya end -- left + local xa,ya = x+r,y+i if (TiledMap_GetMapTile(xa,ya,z) == iTileType) then return xa,ya end -- right + end + end +end + +function TiledMap_GetMapTile (tx,ty,layerid) -- coords in tiles + local row = gMapLayers[layerid][ty] + return row and row[tx] or kMapTileTypeEmpty +end + +function TiledMap_SetMapTile (tx,ty,layerid,v) -- coords in tiles + local row = gMapLayers[layerid][ty] + if (not row) then row = {} gMapLayers[layerid][ty] = row end + row[tx] = v +end + +-- todo : maybe optimize during parse xml for types registered as to-be-listed before parsing ? +function TiledMap_ListAllOfTypeOnLayer (layerid,iTileType) + local res = {} + local w = TiledMap_GetMapW() + local h = TiledMap_GetMapH() + for x=0,w-1 do + for y=0,h-1 do + if (TiledMap_GetMapTile(x,y,layerid) == iTileType) then table.insert(res,{x=x,y=y}) end + end + end + return res +end + +function TiledMap_GetLayerZByName (layername) for z,layer in ipairs(gMapLayers) do if (layer.name == layername) then return z end end end +function TiledMap_SetLayerInvisByName (layername) gTileMap_LayerInvisByName[layername] = true end + +function TiledMap_IsLayerVisible (z) + local layer = gMapLayers[z] + return layer and (not gTileMap_LayerInvisByName[layer.name or "?"]) +end + +function TiledMap_GetTilePosUnderMouse (mx,my,camx,camy) + return floor((mx+camx-love.graphics.getWidth()/2)/kTileSize), + floor((my+camy-love.graphics.getHeight()/2)/kTileSize) +end + +function TiledMap_DrawNearCam (camx,camy,fun_layercallback) + camx,camy = floor(camx),floor(camy) + local screen_w = love.graphics.getWidth() + local screen_h = love.graphics.getHeight() + local minx,maxx = floor((camx-screen_w/2)/kTileSize),ceil((camx+screen_w/2)/kTileSize) + local miny,maxy = floor((camy-screen_h/2)/kTileSize),ceil((camy+screen_h/2)/kTileSize) + for z = 1,#gMapLayers do + if (fun_layercallback) then fun_layercallback(z,gMapLayers[z]) end + if (TiledMap_IsLayerVisible(z)) then + for x = minx,maxx do + for y = miny,maxy do + local gfx = gTileGfx[TiledMap_GetMapTile(x,y,z)] + if (gfx) then + local sx = x*kTileSize - camx + screen_w/2 + local sy = y*kTileSize - camy + screen_h/2 + love.graphics.draw(gfx,sx,sy) -- x, y, r, sx, sy, ox, oy + end + end + end + end + end +end + + +-- ***** ***** ***** ***** ***** xml parser + + +-- LoadXML from http://lua-users.org/wiki/LuaXml +function LoadXML(s) + local function LoadXML_parseargs(s) + local arg = {} + string.gsub(s, "(%w+)=([\"'])(.-)%2", function (w, _, a) + arg[w] = a + end) + return arg + end + local stack = {} + local top = {} + table.insert(stack, top) + local ni,c,label,xarg, empty + local i, j = 1, 1 + while true do + ni,j,c,label,xarg, empty = string.find(s, "<(%/?)([%w:]+)(.-)(%/?)>", i) + if not ni then break end + local text = string.sub(s, i, ni-1) + if not string.find(text, "^%s*$") then + table.insert(top, text) + end + if empty == "/" then -- empty element tag + table.insert(top, {label=label, xarg=LoadXML_parseargs(xarg), empty=1}) + elseif c == "" then -- start tag + top = {label=label, xarg=LoadXML_parseargs(xarg)} + table.insert(stack, top) -- new level + else -- end tag + local toclose = table.remove(stack) -- remove top + top = stack[#stack] + if #stack < 1 then + error("nothing to close with "..label) + end + if toclose.label ~= label then + error("trying to close "..toclose.label.." with "..label) + end + table.insert(top, toclose) + end + i = j+1 + end + local text = string.sub(s, i) + if not string.find(text, "^%s*$") then + table.insert(stack[#stack], text) + end + if #stack > 1 then + error("unclosed "..stack[stack.n].label) + end + return stack[1] +end + + +-- ***** ***** ***** ***** ***** parsing the tilemap xml file + +local function getTilesets(node) + local tiles = {} + for k, sub in ipairs(node) do + if (sub.label == "tileset") then + tiles[tonumber(sub.xarg.firstgid)] = sub[1].xarg.source + end + end + return tiles +end + +local function getLayers(node) + local layers = {} + layers.width = 0 + layers.height = 0 + for k, sub in ipairs(node) do + if (sub.label == "layer") then -- and sub.xarg.name == layer_name + layers.width = max(layers.width ,tonumber(sub.xarg.width ) or 0) + layers.height = max(layers.height,tonumber(sub.xarg.height) or 0) + local layer = {} + table.insert(layers,layer) + layer.name = sub.xarg.name + --~ print("layername",layer.name) + width = tonumber(sub.xarg.width) + i = 0 + j = 0 + for l, child in ipairs(sub[1]) do + if (j == 0) then + layer[i] = {} + end + layer[i][j] = tonumber(child.xarg.gid) + j = j + 1 + if j >= width then + j = 0 + i = i + 1 + end + end + end + end + return layers +end + +function TiledMap_Parse(filename) + local xml = LoadXML(jin.filesystem.read(filename)) + local tiles = getTilesets(xml[2]) + local layers = getLayers(xml[2]) + return tiles, layers +end
\ No newline at end of file diff --git a/tiled/tileset.png b/tiled/tileset.png Binary files differnew file mode 100644 index 0000000..b2e4407 --- /dev/null +++ b/tiled/tileset.png |