Re: [url] Super Mario in 14kB Javascript

看板Ajax作者 (對呀對呀對呀對呀)時間16年前 (2008/04/16 10:56), 編輯推噓5(505)
留言10則, 6人參與, 最新討論串2/3 (看更多)
※ 引述《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

04/16 11:20, , 1F
主要是想問有沒有人能在不onload的時候直接執行遊戲
04/16 11:20, 1F

04/16 11:42, , 2F
唔, Base64應該會使資料變大才對 haha
04/16 11:42, 2F

04/16 11:42, , 3F
可是我在src看到的似乎就是這樣子耶 用base64跟base128來做
04/16 11:42, 3F

04/16 11:57, , 4F
可能還有一些我沒注意到的地方吧
04/16 11:57, 4F

04/16 12:17, , 5F
那是data: URI scheme 用data:開頭的字串把圖/midi包在html
04/16 12:17, 5F

04/16 12:18, , 6F
04/16 12:18, 6F

04/16 21:27, , 7F
midi是base64,圖片是binary和ascii http://0rz.tw/233TM
04/16 21:27, 7F

04/21 02:21, , 8F
它是用 base64,但這不是程式碼大幅縮短的原因
04/21 02:21, 8F

04/21 22:36, , 9F
bcse 可否多給點解釋呢? 小弟願聞其詳! 謝謝
04/21 22:36, 9F

04/22 03:11, , 10F
他有做一個簡單的javascript壓縮 把35K的程式縮到14K
04/22 03:11, 10F
文章代碼(AID): #181Mh2_J (Ajax)
文章代碼(AID): #181Mh2_J (Ajax)