C ô Tilemap demo - Original concept, graphics and map by tr1p1ea. Cô ============================================================= : (ô Error handler. 42î … Û : ë 0 : ç Ÿ=17 à ‹ ö : ñ " at line ";ž : à <ô Initialise VDU. Fë 4 Pï 20,26,23,1,0;0;0;0; Zû 0 : û 255 dô Load map. nÞ map$(15) *xã y%=0 ¸ 15 : map$(y%)=Ä16,".") : í y% ‚ã y%=0 ¸ 15 Œmap$(y%)="" –ã x%=0 ¸ 15 & ó m% : map$(y%)=map$(y%)+½(128+m%) ªí x% ´í y% ¾ô Load sprites. ÈÞ d% 7 Òã s%=0 ¸ 23 Üó a%,b% : d%!0=a% : d%!4=b% æï 23,s%+128 ðã i%=0 ¸ 7 : ï d%?i% : í i% úí s% ô Player/Camera variables. pX%=1 : pY%=1 camX%=0 : camY%=0 "ô Last key value and time. ,lastGK%=0 : lastGKT%=‘ 6: @ô Main loop. Jõ #Tô Draw the map onto the screen. ;^ã r%=0 ¸ 7 : ñŠ0,r%)Ámap$(r%+camY%),camX%+1,12); : í r% hô Get the player's key. !rk%=£ : õ : k%=¤_getKey : ý k% |ô We have a key to handle. †newX%=pX% : newY%=pY% $ç k%=1 € newY%>0 : newY%=newY%-1 %šç k%=2 € newY%<15 : newY%=newY%+1 $¤ç k%=4 € newX%>0 : newX%=newX%-1 %®ç k%=8 € newX%<15 : newX%=newX%+1 ¸ô Is it walkable? =Âç Ámap$(newY%),newX%+1,1)<>½(128) Œ newX%=pX% : newY%=pY% "Ìô Move man within map strings. ;Ömap$(pY%)=Ámap$(pY%),1,pX%)+½(128)+Ámap$(pY%),pX%+2,16) Eàmap$(newY%)=Ámap$(newY%),1,newX%)+½(129)+Ámap$(newY%),newX%+2,16) êô Scroll map around. :ôç newX%>pX% € newX%-camX%=11 € camX%<4 Œ camX%=camX%+1 :þç newX%0 Œ camX%=camX%-1 :ç newY%>pY% € newY%-camY%=7 € camY%<8 Œ camY%=camY%+1 :ç newY%0 Œ camY%=camY%-1 pX%=newX% : pY%=newY% &ý £ 0à :: Dô Gets the key. NÝ ¤_getKey : ê r% Xr%=0 bç ¦-58:r%=r% „ 1 lç ¦-42:r%=r% „ 2 vç ¦-26:r%=r% „ 4 €ç ¦-122:r%=r% „ 8 AŠç r%<>lastGK% „ ‘>lastGKT%+10 Œ lastGK%=r% : lastGKT%=‘ : =r% ”=0 žô Map. 4¨Ü 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 4²Ü 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 4¼Ü 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 4ÆÜ 3, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 4 4ÐÜ 3, 0, 3,11,12,13, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4 4ÚÜ 3, 0, 3, 8, 9,10, 0,14,14, 4, 0, 0, 0, 0, 0, 4 4äÜ 3, 0, 3, 5, 6, 7, 0,14,14, 4, 0, 0, 0, 0, 0, 4 4îÜ 3, 0, 3, 0, 0, 0, 0,14,14, 4, 0, 0, 0, 0, 0, 4 4øÜ 3, 0, 3, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4 4Ü 3, 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 4 4 Ü 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 4Ü 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,16,17,17,17,18, 4 4 Ü 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,22,15,15,15,23, 4 4*Ü 3, 0, 0, 0, 0, 0, 0, 0, 0, 0,19,20,20,20,21, 4 44Ü 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4 4>Ü 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 Hô Sprite data. RÜ &00205000,&00040A00 \Ü &99A5FF7E,&7EBDA57E fÜ &00FFAA55,&00FFAAFF pÜ &C0A0A0C0,&C0A4AAC0 zÜ &03255503,&03050503 „Ü &80C09ED6,&7FFFFFC0 ŽÜ &42424A42,&FFFFFF42 ˜Ü &0103795B,&FEFFFF03 ¢Ü &FFFFD5A0,&92DA9EC0 ¬Ü &FFFF5500,&423C0000 ¶Ü &FFFF5705,&496B7903 ÀÜ &7C3A1F07,&D0EFF8EA ÊÜ &44AAFFFF,&00FF0010 ÔÜ &5EBCF8E0,&0BF71F97 ÞÜ &1A6C3400,&002C3658 èÜ &20000000,&00040810 òÜ &40AA5500,&41824480 üÜ &00AA5500,&01020400 Ü &04AA5400,&04020402 Ü &42844080,&55AA4081 Ü &02040000,&55AA0001 $Ü &04020402,&54AA0402 .Ü &40804080,&40804080 8Ü &04020402,&04020402 ÿÿ