一体どうなっているのですか?
js版マリオ
http://www.nihilogic.dk/labs/mario/mario_large_music.htm
ご指摘の通り,画像部分はBASE64エンコードではなく,canvasへの独自データの描画でした・・・。
以下は詳細です。
Canvas要素を作っている関数。
一つ一つのキャラクターなど個別の動く要素を生みだしている。
>B=function(Ap,Ao,Aq,Al,An,Am){
>・・・
>var i=S("canvas");・・・i.getContext("2d").drawImage(Am,0,0)}
画像データを独自形式で格納している配列変数。
>AC=['・・・
APを介して変数zに格納。
>z=["",AP([5,4,0,3],AC[0]),AP([3,4,5,0],AC[1]),
APの中では,引数を独自解釈してcanvasで返している。
>AP=function(Am,i,c){var Ao=M(i);if(d){var Aq=S("canvas");var An=Aq.getContext("2d");var Ar=Aq.style;Ar.position="absolute";Ar.left=Ar.top=0;Ar.width=Ar.height=Aq.width=Aq.height=C;if(f[Am[0!=""){An.fillStyle="#"+f[Am[0;An.fillRect(0,0,C,C)}b(Am,Ao,An,c);return Aq}
BASE64エンコードして埋め込んでいます。
画像ファイルを,HTMLファイル内に埋め込み,1ファイルに統合する (BASE64を使ってファイル数を減らす方法)
http://d.hatena.ne.jp/language_and_engineering/20140211/p1
dataスキームじゃなくてcanpas要素で独自エンコードっぽいですよ。
うわー。すみません。
ソース内を見ると,dataエンコードは実際に使われていましたが,
画像ではなく,MIDI音楽の部分でしたね。
>data:audio/mid;base64
画像についてはもう一つ別の回答に投稿いたします。
ご指摘の通り,画像部分はBASE64エンコードではなく,canvasへの独自データの描画でした・・・。
以下は詳細です。
Canvas要素を作っている関数。
一つ一つのキャラクターなど個別の動く要素を生みだしている。
>B=function(Ap,Ao,Aq,Al,An,Am){
>・・・
>var i=S("canvas");・・・i.getContext("2d").drawImage(Am,0,0)}
画像データを独自形式で格納している配列変数。
>AC=['・・・
APを介して変数zに格納。
>z=["",AP([5,4,0,3],AC[0]),AP([3,4,5,0],AC[1]),
APの中では,引数を独自解釈してcanvasで返している。
>AP=function(Am,i,c){var Ao=M(i);if(d){var Aq=S("canvas");var An=Aq.getContext("2d");var Ar=Aq.style;Ar.position="absolute";Ar.left=Ar.top=0;Ar.width=Ar.height=Aq.width=Aq.height=C;if(f[Am[0!=""){An.fillStyle="#"+f[Am[0;An.fillRect(0,0,C,C)}b(Am,Ao,An,c);return Aq}
回答ありがとうございます!
しかしブラウザーでマリオができるとは昔は夢にも思っていませんでした。
技術の進歩って凄いですよね。
回答ありがとうございます!
2014/04/21 19:42:31しかしブラウザーでマリオができるとは昔は夢にも思っていませんでした。
技術の進歩って凄いですよね。