Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
HTML5 Canvasによる2Dウェブゲーム開発
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Sora Arakawa
August 08, 2021
Programming
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HTML5 Canvasによる2Dウェブゲーム開発
静大情報LT大会 -2021年8月-
Sora Arakawa
August 08, 2021
More Decks by Sora Arakawa
See All by Sora Arakawa
OSもどきOS
arkw
0
610
オープンソース電車運転ゲーム「もっと! 地下鉄 大名古屋」の紹介
arkw
0
31
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
440
令和最新版Android Studioで化石デバイス向けアプリを作る
arkw
0
700
お前も同人作家にならないか? 技術系同人誌制作入門
arkw
3
110
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
1.4k
技術島の指定ツール「LaTeX」で同人誌を作ろう
arkw
2
450
ポスト・パソコン時代のジャンク遊び スマートデバイス編
arkw
0
230
ジャンカーよ、車も買え ~10分でわかる!? 中古車選び入門~
arkw
2
220
Other Decks in Programming
See All in Programming
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
430
Honoでのサプライチェーン侵害対策 〜 3つのライブラリに学ぶ
yusukebe
7
1.9k
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
520
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
340
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
260
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
2
1.4k
1B+ /day規模のログを管理する技術
broadleaf
0
140
そのテスト、説明できますか?~LWテスト戦略FW~のご紹介
nakahara
0
200
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
100
【やさしく解説 設計編・中級 #4】ルールの寿命と、システムの年輪
panda728
PRO
2
130
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
4.2k
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
3.9M
Paper Plane
katiecoart
PRO
2
52k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
What's in a price? How to price your products and services
michaelherold
247
13k
Prompt Engineering for Job Search
mfonobong
0
370
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
Designing for Timeless Needs
cassininazir
1
360
Automating Front-end Workflow
addyosmani
1370
210k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
220
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.4k
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Transcript
HTML5 Canvasによる 2Dウェブゲーム開発 Sora Arakawa (arkw) 2021/08/08 静大情報LT大会@オンライン 「#静大情報LT」でツイートすると 画面上部に表示されます!
自己紹介 Sora Arakawa(arkw) • 静岡大学 情報学部 行動情報学科 B2 • 所属:某室(長)、xRサークルはまりあ、ICON
• 浜松でAlexaスキル開発のバイトをしています (時給900円) • 愛知県岡崎市在住 • https://arkw.net/
自己紹介 浜キャン近辺で安いアパート(~1.5万)を探しています。 情報ください。
プロ生早押しクイズ • 2021年1月2日公開 • 最新バージョンは1.5.0 (2021年7月31日)
① 画面設計 • HTMLでCanvasを置く サイズは適当に(プロ生早押しクイズは640x480) • 必要に応じて操作説明やリンクなどを書く • CSSでデザインを調整する
② 操作方法 • Canvasにマウス/タッチイベントを追加する • CSSでCanvasを拡大縮小すると座標がずれるので、画面サイズ を基に計算して修正する • 「プロ生早押しクイズ」では上記処理がめんどいのでHTML側に ボタンを設置した
• キーボード入力も拾えるが、モバイル端末への配慮が必要
None
③ メインループの生成 • メインループはゲームに不可欠 • setIntervalでは予め待ち時間を設定する • requestAnimationFrameはモニタの周波数に依存 • requestAnimationFrameの方が安定している?
③ メインループの生成 • requestAnimationFrameは基本的に60fps • ゲーミングモニタ対応するなら、早送り対策が必要
④ グラフィック • メインループ内で適当に文字や画像を出す • 画像はクソデカ1枚絵にするとファイル読み込みが楽 • WebフォントならOSに関係無く同じ書体が出せます
None
⑤ ロード画面 • インターネット上からデータを取得するため、ロードに若干の 時間が掛かる(感覚としてはPSのCD-ROMに近い?) • リソースの読み込みが終わる前にプログラムを進めると画面表 示がバグる • 「プロ生早押しクイズ」では、最も大きな画像の読み込み終了
後60フレーム程度待つように実装
⑥ 音楽 • HTMLファイルに<audio loop>タグで指定 • Chromeでは無限ループ時に一瞬音が止まる • 参照するファイルはJavaScriptから変更できるのでHTMLに書く のは最初の1曲だけでOK
⑦ 効果音 • HTMLファイルに<audio>タグで指定 • 頻繁に鳴らす音は全部HTMLに書く • 鳴らし終わったら一時停止→再生位置を0に戻す • 使用頻度の低い音はJavaScriptで切り替えてもOK
• 素材を使用する際は無音部分のカットを忘れずに!!
音声ファイルの形式について • MP3、OGGあたりがオススメ?
まとめ • メインループはrequestAnimationFrame • 細かい画像はクソデカ1枚絵から切り出す • ロード画面を実装する • 音はMP3かOGG •
具体的なコードの書き方はググって、どうぞ
ご清聴ありがとうございました