Enviar pesquisa
Carregar
HTML5で作るスマホブラウザゲーム
•
Transferir como KEY, PDF
•
9 gostaram
•
6,478 visualizações
Takumi Ohashi
Seguir
2012年5月15日 第3回SmartHacks
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 33
Baixar agora
Recomendados
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Hiroaki Wakamatsu
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
Naoki Matsuda
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
Yasuhito Yabe
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーション
Kohei Kadowaki
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?
Yuki Ishikawa
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策
Kohei Kadowaki
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみる
Kohei Kadowaki
Recomendados
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
JavaScript + CSS3を活用して スマートフォンサイト/アプリに 動きを付けてみよう
Hiroaki Wakamatsu
HTML5でスマートフォン開発の理想と現実
HTML5でスマートフォン開発の理想と現実
Takumi Ohashi
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
モックアップやプロトタイプづくりを 加速させる。それが SVG。@DIST.4 「Life is Short」
Naoki Matsuda
レスポンシブWebデザイン【発展編】
レスポンシブWebデザイン【発展編】
Yasuhito Yabe
SVGでつくるインタラクティブWebアプリケーション
SVGでつくるインタラクティブWebアプリケーション
Kohei Kadowaki
まだ DOM 操作で消耗してるの?
まだ DOM 操作で消耗してるの?
Yuki Ishikawa
Inline SVG - トラブルとその対策
Inline SVG - トラブルとその対策
Kohei Kadowaki
インラインSVGをつかって地図っぽいものをつくってみる
インラインSVGをつかって地図っぽいものをつくってみる
Kohei Kadowaki
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
Kohei Kadowaki
Canvas勉強会
Canvas勉強会
Tsutomu Kawamura
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
Azure上でec cubeを運用するポイント
Azure上でec cubeを運用するポイント
Makoto Nishimura
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料
Kazuya Hiruma
BuriKaigi2018
BuriKaigi2018
Yutaka Tsumori
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
Shogo Iwano
UITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作る
Hidetoshi Mori
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
Kohei Kadowaki
Nuxt.jsで手軽に構築するモダン・フロントエンド開発環境
Nuxt.jsで手軽に構築するモダン・フロントエンド開発環境
lig-dsktschy
Aiming study#6pdf
Aiming study#6pdf
Koutaro Chikuba
Virtual boxからVM Importする
Virtual boxからVM Importする
Shinji Saito
HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料
Kazuya Hiruma
使う前に知っておきたいSVGのこと
使う前に知っておきたいSVGのこと
Kasumi Morita
Xamarinは辛いよ
Xamarinは辛いよ
Takkiiii
UICollectionViewLayoutでカバーフローを作りたい!
UICollectionViewLayoutでカバーフローを作りたい!
sawat1203
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
Kei Nakazawa
Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
軽量ASP.NETフレームワークNancy
軽量ASP.NETフレームワークNancy
Narami Kiyokura
Core Animation 使って見た
Core Animation 使って見た
OCHI Shuji
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 2
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 2
Takuya Mukohira
Mais conteúdo relacionado
Mais procurados
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
Kohei Kadowaki
Canvas勉強会
Canvas勉強会
Tsutomu Kawamura
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Toshio Ehara
Azure上でec cubeを運用するポイント
Azure上でec cubeを運用するポイント
Makoto Nishimura
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料
Kazuya Hiruma
BuriKaigi2018
BuriKaigi2018
Yutaka Tsumori
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
Shogo Iwano
UITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作る
Hidetoshi Mori
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
Kohei Kadowaki
Nuxt.jsで手軽に構築するモダン・フロントエンド開発環境
Nuxt.jsで手軽に構築するモダン・フロントエンド開発環境
lig-dsktschy
Aiming study#6pdf
Aiming study#6pdf
Koutaro Chikuba
Virtual boxからVM Importする
Virtual boxからVM Importする
Shinji Saito
HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料
Kazuya Hiruma
使う前に知っておきたいSVGのこと
使う前に知っておきたいSVGのこと
Kasumi Morita
Xamarinは辛いよ
Xamarinは辛いよ
Takkiiii
UICollectionViewLayoutでカバーフローを作りたい!
UICollectionViewLayoutでカバーフローを作りたい!
sawat1203
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
Kei Nakazawa
Flux react現状確認会
Flux react現状確認会
VOYAGE GROUP
軽量ASP.NETフレームワークNancy
軽量ASP.NETフレームワークNancy
Narami Kiyokura
Mais procurados
(19)
ShareWisをFirefoxで動かすためのSVG的とりくみ
ShareWisをFirefoxで動かすためのSVG的とりくみ
Canvas勉強会
Canvas勉強会
HTML5のCanvas入門 - Img画像を編集してみよう -
HTML5のCanvas入門 - Img画像を編集してみよう -
Azure上でec cubeを運用するポイント
Azure上でec cubeを運用するポイント
WebGL入門ハンズオン資料
WebGL入門ハンズオン資料
BuriKaigi2018
BuriKaigi2018
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
短期間+大規模ゲーム開発でも破綻しないHTML・SCSS
UITableViewで無限CoverFlowを作る
UITableViewで無限CoverFlowを作る
Firefox OSでSVGをつかってみた
Firefox OSでSVGをつかってみた
Nuxt.jsで手軽に構築するモダン・フロントエンド開発環境
Nuxt.jsで手軽に構築するモダン・フロントエンド開発環境
Aiming study#6pdf
Aiming study#6pdf
Virtual boxからVM Importする
Virtual boxからVM Importする
HTML5 Conference 2015 WebGLハンズオン資料
HTML5 Conference 2015 WebGLハンズオン資料
使う前に知っておきたいSVGのこと
使う前に知っておきたいSVGのこと
Xamarinは辛いよ
Xamarinは辛いよ
UICollectionViewLayoutでカバーフローを作りたい!
UICollectionViewLayoutでカバーフローを作りたい!
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
Flux react現状確認会
Flux react現状確認会
軽量ASP.NETフレームワークNancy
軽量ASP.NETフレームワークNancy
Semelhante a HTML5で作るスマホブラウザゲーム
Core Animation 使って見た
Core Animation 使って見た
OCHI Shuji
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
Shumpei Shiraishi
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 2
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 2
Takuya Mukohira
openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
Teruaki Tsubokura
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
Yasunobu Ikeda
Arctic.js
Arctic.js
chikathreesix
Ember.js Tokyo event 2014/09/22 (Japanese)
Ember.js Tokyo event 2014/09/22 (Japanese)
Yuki Shimada
JavaScriptで『漫画カメラ』的画像加工
JavaScriptで『漫画カメラ』的画像加工
Masayuki Maekawa
iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!
cocopon
第8回rest勉強会 bootstrap編
第8回rest勉強会 bootstrap編
ksimoji
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
MITSUNARI Shigeo
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
Yasunobu Ikeda
SVG MANIAX - CSS Nite After dark7
SVG MANIAX - CSS Nite After dark7
Naoki Matsuda
Media Kinect2014 day7
Media Kinect2014 day7
Akihiko Shirai
LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側
Takuro Hanawa
try! Swift - Advanced Graphics with Core Animation
try! Swift - Advanced Graphics with Core Animation
Tim Oliver
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょう
Hishikawa Takuro
ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)
kunihikokaneko1
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
Nishida Kansuke
NHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーション
nhn_hangame
Semelhante a HTML5で作るスマホブラウザゲーム
(20)
Core Animation 使って見た
Core Animation 使って見た
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
パララックスでレスポンシブでJ query mobileなサイトのつくりかた
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 2
苫小牧高専 ソフトウェアテクノロジー部 enchant.jsでゲーム作り 2
openFrameworks Workshop in Kanazawa v001
openFrameworks Workshop in Kanazawa v001
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
F-site発表資料「Flashユーザーが今覚えておきたいHTML5」
Arctic.js
Arctic.js
Ember.js Tokyo event 2014/09/22 (Japanese)
Ember.js Tokyo event 2014/09/22 (Japanese)
JavaScriptで『漫画カメラ』的画像加工
JavaScriptで『漫画カメラ』的画像加工
iOSプログラマへ。HTML5 Canvasがおもしろい!
iOSプログラマへ。HTML5 Canvasがおもしろい!
第8回rest勉強会 bootstrap編
第8回rest勉強会 bootstrap編
WASM(WebAssembly)入門 ペアリング演算やってみた
WASM(WebAssembly)入門 ペアリング演算やってみた
インタラクティブコンテンツにおけるHTML5とFlash
インタラクティブコンテンツにおけるHTML5とFlash
SVG MANIAX - CSS Nite After dark7
SVG MANIAX - CSS Nite After dark7
Media Kinect2014 day7
Media Kinect2014 day7
LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側
try! Swift - Advanced Graphics with Core Animation
try! Swift - Advanced Graphics with Core Animation
WordBench Kobe jQueryどうでしょう
WordBench Kobe jQueryどうでしょう
ae-10. 中間まとめ(ディープラーニング)
ae-10. 中間まとめ(ディープラーニング)
㉒初期プロジェクトを改造!
㉒初期プロジェクトを改造!
NHN HTML5勉強会 CSS3アニメーション
NHN HTML5勉強会 CSS3アニメーション
HTML5で作るスマホブラウザゲーム
1.
HTML5で作る スマホブラウザゲーム 株式会社フォリフ エンジニア 大橋 巧 2012/05/16 第3回SmartHacks
2.
自己紹介 •
大橋 巧 • 2011年4月入社 • スマートフォン向けコンテンツのクライアン トサイド担当 • Corollin’ Planet • 最近はFlashコンテンツのHTML5変換や、 Backbone.jsでWebアプリの開発とか
3.
今日のお話 • 開発事例紹介 • スマホブラウザゲームの
アニメーション • 開発ではまった事とその解決法
4.
開発事例紹介
5.
5-Land •
iOS/Androidのブラウザ 上で動くミニゲーム集 • 一部を除いてHTML5で はない • ガラケーレベル
6.
Corollin’ Planet • 2011年7月リリース •
HTML5で開発 • 開発2週間くらい • corollin.com
7.
Corollin’ Planet •
今年3月、Mobile Hack Tokyoの HackathonにてFacebookアプリ としてリリース ○ 得点、進行状況のシェア ○ 友人のプレイ記録をゲーム 内で見られる • あのザッカーバーグもプレイ 感想:”Too Hard.” • Best Social Mobile Game受賞!
8.
Final Rebellion •
MMOストラテジー • マップのスクロール、 ガチャ演出などに HTML5を使用 • joynt.in/finalrebellion
9.
スマホブラウザゲーム (の、アニメーション)
10.
大きく2通り • Canavasによるアニメーション • CSS3によるアニメーション
11.
Canvasとは •
JavaScriptを使って動的に図を描くHTMLの要素 HTML: <canvas width= 100 height= 100 ></canvas> js: var canvas = document.getElementsByTagName('canvas')[0]; var ctx = canvas.getContext('2d'); ctx.Rect(0, 0, 50, 100); ctx.fill();
12.
Canvasアニメーション •
ループの中で、描画→クリア→描画 setInterval(function() { // Canvasをリフレッシュ ctx.clearRect(0, 0, canvas.width, canvas.height); // 座標を移動させながら描画 ctx.drawImage(img, x++, y); }, 100);
13.
CSS3アニメーション •
Animation ○ キーフレームをCSSに記述 CSS: #hoge { -webkit-animation: animation_1 1s infinite; } @-webkit-keyframes animation_1 { 0% { left: 0px; } 50% { left: 200px; } 100% { left: 100px; top: 100px; } }
14.
CSS3アニメーション •
Transition ○ 時間的変化 ○ スタイルを変更すると自動的にアニメー ションを伴って変化する CSS: -webkit-transition: ease-out 2s; js: document.getElementById( hoge ).style.left = 100px ; document.getElementById( hoge ).style.top = 100px ;
15.
番外 •
HTML5使わない場合 js: setInterval(function() { x++; document.getElementById( hoge ).style.left = x + px ; }, 100); • CanvasもCSS3も使えないブラウザでは必要 (IE8以下など)
16.
CanvasかCSS3か •
Canvasアニメーション ○ 複雑な動き(物理判定など)も作れる ○ CSS3と比べるとパフォーマンスは落ちる • CSS3アニメーション ○ 実装が簡単(CSSのみで完結) ○ シンプルなアニメーション
17.
Corollin’ Planetでは •
両方組み合わせ • メインのゲーム部分は Canvas • メニュー画面や、 ストーリー部分はCSS3
18.
開発中にはまった事
19.
開発中にはまった事 • アニメーションが重い • Canvasのバグ(主にAndorid) •
CSS3のバグ(主にAndorid)
20.
対策:アニメーションが重い •
Canvas ○ Retinaディスプレイ対応 ○ 描画範囲を最小限に ○ putImageDataを使用 • CSS3 ○ GPUアクセラレーションを利用
21.
Retinaディスプレイ対応 •
2倍サイズの画像を2倍サイズのCanvasに描画 ○ 非Retina <canvas width= 100 height= 100 > ctx.drawImage(img, 0, 0, 100, 100); ○ Retina <canvas width= 200 height= 200 style= width: 100px; height: 100px; > ctx.drawImage(img, 0, 0, 200, 200); • アニメーションのパフォーマンスにも影響
22.
描画範囲を最小限に! •
Canvasアニメーションでは毎フレームCanvasを クリアする必要があるため必然的に描画範囲 が大きくなり、重くなる →必要な部分だけ再描画する
23.
putImageData •
getImageDataで読み込んだものを貼付ける • drawImageDataより描画コスト軽い var image = ctx.getImageData(0, 0, 100, 100); ctx.putImageData(image, 0, 0); • Corollinではあらかじめアニメーションパター ンを読み込み、putImageで連続的に再生 (内部でセル画を生成しているイメージ)
24.
GPUアクセラレーション •
iOSではtransformプロパティ等に対してアクセ ラレーションが有効 →iOS5からはCanvasに対しても有効 • iOSシミュレータの場合 デバッグ→ブレンドレイヤーで確認
25.
その他 •
Canvasを複数枚重ねてレイヤー的に • 描画は2フレームに1度 • キャラクターの画像はAi→Canvasという IllustlatorのプラグインでCanvasデータに変更
26.
Canvasのバグ •
主にAndroid 2.1x ○ drawImageのサイズ、座標が引き延ばされる ○ scaleが2回適用される ○ rotate, translateがなんかカオス
27.
Canvasのバグ •
drawImageのバグ →scaleで対応 var zoom_fix = Math.sqrt(320 / screen.width); ctx.scale(zoom_fix, zoom_fix); ctx.drawImage(hoge, 0, 0); • transform, rotate →使わない
28.
CSS3のバグ •
Android2.2以降でTransformを設定した要素の子 要素にTransformを設定 →アニメーション時、一瞬Transformが適用さ れない事がある • 対策:やめましょう
29.
まとめ
30.
Androidのチェックを万全に •
先述した以外にも端末やメーカー別のバグが あるため、詳細なチェックは必須 • iOSで動いているものをAndroidでも動かそう とすると難しいが、逆は簡単 →Androidベースで開発していくのもアリ
31.
安定した機能を使う •
実際に他社で使用されているなど、実績のあ るものを使用 • Web SQLのようにHTML5の仕様から外れてし まうものも
32.
ライブラリの使用 •
ここ一年でかなり充実 • バグや実装の違いを吸収してくれるものも • ライブラリ →enchant.js, Arctic.js,easel.js, etc... • オーサリングツール →Adobe Edge, Sencha Animater, etc...
33.
ご清聴 ありがとうございました
Notas do Editor
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Baixar agora