作者kewang (对呀对呀对呀对呀)
看板Ajax
标题Re: [url] Super Mario in 14kB Javascript
时间Wed Apr 16 10:55:59 2008
※ 引述《qrtt1 (null)》之铭言:
: http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html
: <%
: Here's an experiment in keeping things small and confined to one Javascript
: file. There are no external image files or anything, everything is rendered
: with Javascript using either canvas elements or old fashioned div-making
: tactics (for IE). The sprites are stored in custom encoded strings in a
: format that only allows 4 colors for each sprite but in turn only takes up
: around 40-60 bytes per sprite.
: %>
图文版
http://blog.pixnet.net/kewang/post/16604843
一定没人玩过用JavaScript写的超级玛莉吧!最近在Ajax板上面看到的一篇文章「Super
Mario in 14kB Javascript」,作者把原本在任天堂上面的经典游戏「超级玛莉」转移到
电脑上面,而且还是用JavaScript写出来的。我玩了几次之後,发现反应时间不够快的键
盘,在操作游戏的时候会非常不方便(像是我在用的A8J)。
大家一定很好奇这个游戏是怎麽写出来的吧,而且还有音乐咧。我看了一下程式码,作者
似乎是把音乐和人物用Base64和Base128编码後,全部放在阵列里面,如此一来程式码就
大幅缩短了,实在是太厉害啦!
我本来也想把这个游戏直接嵌入在这篇文章里面,可是我试了一个小时一直都不成功,似
乎是在呼叫JavaScript的时候有一些undefined的问题,有看到这篇文章的强者,试试看
能不能不要在onload的时候,直接呼叫游戏出来,大家试试看吧。
参考资料:
nihilogic: Super Mario in 14kB Javascript
Base64 - Wikipedia
--
杂七杂八的kewang部落格
http://kewang.tw
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.111.79.30
1F:→ kewang:主要是想问有没有人能在不onload的时候直接执行游戏 04/16 11:20
2F:推 qrtt1:唔, Base64应该会使资料变大才对 haha 04/16 11:42
3F:→ kewang:可是我在src看到的似乎就是这样子耶 用base64跟base128来做 04/16 11:42
4F:→ kewang:可能还有一些我没注意到的地方吧 04/16 11:57
5F:推 LPH66:那是data: URI scheme 用data:开头的字串把图/midi包在html 04/16 12:17
8F:→ bcse:它是用 base64,但这不是程式码大幅缩短的原因 04/21 02:21
9F:推 LouisXIV:bcse 可否多给点解释呢? 小弟愿闻其详! 谢谢 04/21 22:36
10F:推 LPH66:他有做一个简单的javascript压缩 把35K的程式缩到14K 04/22 03:11