人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

js版マリオのソース解析したところ画像ファイルが見つかりませんでした。
一体どうなっているのですか?

js版マリオ
http://www.nihilogic.dk/labs/mario/mario_large_music.htm

●質問者: ドラきち
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● lang_and_engine

BASE64エンコードして埋め込んでいます。

画像ファイルを,HTMLファイル内に埋め込み,1ファイルに統合する (BASE64を使ってファイル数を減らす方法)
http://d.hatena.ne.jp/language_and_engineering/20140211/p1


TransFreeBSDさんのコメント
dataスキームじゃなくてcanpas要素で独自エンコードっぽいですよ。

lang_and_engineさんのコメント
うわー。すみません。 ソース内を見ると,dataエンコードは実際に使われていましたが, 画像ではなく,MIDI音楽の部分でしたね。 >data:audio/mid;base64 画像についてはもう一つ別の回答に投稿いたします。

2 ● lang_and_engine
ベストアンサー

ご指摘の通り,画像部分は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}


ドラきちさんのコメント
回答ありがとうございます! しかしブラウザーでマリオができるとは昔は夢にも思っていませんでした。 技術の進歩って凄いですよね。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ