SlideShare a Scribd company logo
MCAゲーム開発講座
JSをいじってJCを扱えるようになろう
講座の準備
> 講座資料
- ここ(https://github.com/tamamu/js_tutorial)
> 質問用Slack
- ここ(https://mca-dev.slack.com/)
第2回 まず土台から作ろう
~TOKIOになった気分で~
MCAゲーム開発講座
Canvasをレイヤーとして使う
> ちょっとだけCSSのお勉強
- index.htmlの<style>の部分がCSS
> #idでそのidを持つ要素に適用
- :の左側が属性名、右側が値
> positionは要素の位置の基準を決める属性
値にabsoluteとすると絶対位置への配置となる
(他にrelative=相対位置などがある)
Canvasをレイヤーとして使う
> z-indexは重ね合わせの順番を決める属性
- 数字が小さいほど下で、大きいほど上に重ねられる
> 今回はbgを下に、gameを上に重ねる
連想配列(ハッシュテーブル)
> 配列変数の各要素を区別出来るように名前を付けて管理する変数
> C言語で言う構造体みたいなもの
> JSではクラスもこれの一種
> 作り方
- var hoge = {a: 0, b: 1, c: 2}
> 使い方
- hoge.b :=> 1
画像の読み込み
> JSで画像を読み込むには最低でも2手順踏まなければならない
- var hoge = new Image();
- hoge.src = "画像へのパス";
> 今回はそれをまとめて関数化する(1手順で済むね!)
> コールバック関数の説明は後ほど
drawImage
> 画像をcanvasに描く関数
> さらに言えば、canvasの一部をcanvasに拡大・縮小コピーする関数
> 使い方は3種類(主に使うのは2種類)
- drawImage(image,dx, dy)
- imageを座標(dx, dy)にコピー
- drawImage(image,sx, sy, sw, sh, dx, dy, dw, dh)
- imageの座標(sx, sy)から(sx+sw, sy+sh)までの矩形を
- 座標(dx, dy)に幅dw, 高さdhでコピー
> 前者は1枚絵、後者はスプライトシートに使う
- imageをctxと勘違いしないように!!
FPSの管理
> FPS(Frame Per Second)
> 1秒間に画面を更新する回数
> 一般的なゲームだと60fpsだが、今回は30fps
> requestAnimationFrameはfpsを良い感じに保ってくれる
> それだけだと心もとないので30fpsになるよう調整する処理を入れ
てる
- if(new Date() - lastDraw > 1000/30)
- 現在時刻 - 最終更新時刻が 1/30 秒を上回ったら更新
当たり判定
> 点と矩形の当たり判定はそのまま
- 矩形の内部に点があれば当たったとみなす
> 円同士の当たり判定は数学Ⅱの復習
- 画像はここのを使わせてもらいました
次回
へ続
く

More Related Content

What's hot

フロント作業の効率化
フロント作業の効率化フロント作業の効率化
フロント作業の効率化
Yuto Yoshinari
 
とあるデータの保存方法(エターナルサーブ)
とあるデータの保存方法(エターナルサーブ)とあるデータの保存方法(エターナルサーブ)
とあるデータの保存方法(エターナルサーブ)
Yuri Tayama
 
Glance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみたGlance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみたharubelle
 
チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)
Jaeeun Lee
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考える
Yutaro Miyazaki
 
20130316 JAWS DAYS 美人CDP+
20130316 JAWS DAYS 美人CDP+20130316 JAWS DAYS 美人CDP+
20130316 JAWS DAYS 美人CDP+
真吾 吉田
 
おふとんから眺めるSVG
おふとんから眺めるSVGおふとんから眺めるSVG
おふとんから眺めるSVG
cocu_628496
 

What's hot (7)

フロント作業の効率化
フロント作業の効率化フロント作業の効率化
フロント作業の効率化
 
とあるデータの保存方法(エターナルサーブ)
とあるデータの保存方法(エターナルサーブ)とあるデータの保存方法(エターナルサーブ)
とあるデータの保存方法(エターナルサーブ)
 
Glance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみたGlance image-cacheコマンドを使ってみた
Glance image-cacheコマンドを使ってみた
 
チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)チーム開発Tip紹介(Objective-C)
チーム開発Tip紹介(Objective-C)
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考える
 
20130316 JAWS DAYS 美人CDP+
20130316 JAWS DAYS 美人CDP+20130316 JAWS DAYS 美人CDP+
20130316 JAWS DAYS 美人CDP+
 
おふとんから眺めるSVG
おふとんから眺めるSVGおふとんから眺めるSVG
おふとんから眺めるSVG
 

Viewers also liked

Cinc indrets de barcelona
Cinc indrets de barcelonaCinc indrets de barcelona
Cinc indrets de barcelona
cfapalaudemar
 
Delibera estate
Delibera estateDelibera estate
Delibera estate
Marco Marangio
 
Hoja rotacion
Hoja rotacionHoja rotacion
Hoja rotacion
andy2010avbh
 
Casa Punta Molara
Casa Punta MolaraCasa Punta Molara
Casa Punta Molara
Mirek Jirků
 
Presentació Palau de Mar-Competic 3
Presentació Palau de Mar-Competic 3Presentació Palau de Mar-Competic 3
Presentació Palau de Mar-Competic 3
cfapalaudemar
 
Ut fi-aa-it-004-denial of cenvat credit
Ut fi-aa-it-004-denial of cenvat creditUt fi-aa-it-004-denial of cenvat credit
Ut fi-aa-it-004-denial of cenvat creditAMIT SHINDE
 
Ромашка
РомашкаРомашка
Ромашка
AnnChernova
 
BBFC certification
BBFC certificationBBFC certification
BBFC certification
Dilini Gorsia
 
Conditionsforhumor 110827201652-phpapp01
Conditionsforhumor 110827201652-phpapp01Conditionsforhumor 110827201652-phpapp01
Conditionsforhumor 110827201652-phpapp01
Scott Armstrong
 
Ромашка
РомашкаРомашка
Ромашка
KolychevaOlga
 
PA e fatturazione elettronica in italia
PA e fatturazione elettronica in italiaPA e fatturazione elettronica in italia
PA e fatturazione elettronica in italia
European e-Business Lab
 
Alteraciones del metabolismo del equilibrio acido base
Alteraciones del metabolismo del equilibrio acido baseAlteraciones del metabolismo del equilibrio acido base
Alteraciones del metabolismo del equilibrio acido base
itzeliini
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
Indu Sharma Bhardwaj
 
Projects
ProjectsProjects
Projects
Sinchan Halder
 
39-103-1-PB (1)
39-103-1-PB (1)39-103-1-PB (1)
39-103-1-PB (1)
Sujit Kumar
 

Viewers also liked (15)

Cinc indrets de barcelona
Cinc indrets de barcelonaCinc indrets de barcelona
Cinc indrets de barcelona
 
Delibera estate
Delibera estateDelibera estate
Delibera estate
 
Hoja rotacion
Hoja rotacionHoja rotacion
Hoja rotacion
 
Casa Punta Molara
Casa Punta MolaraCasa Punta Molara
Casa Punta Molara
 
Presentació Palau de Mar-Competic 3
Presentació Palau de Mar-Competic 3Presentació Palau de Mar-Competic 3
Presentació Palau de Mar-Competic 3
 
Ut fi-aa-it-004-denial of cenvat credit
Ut fi-aa-it-004-denial of cenvat creditUt fi-aa-it-004-denial of cenvat credit
Ut fi-aa-it-004-denial of cenvat credit
 
Ромашка
РомашкаРомашка
Ромашка
 
BBFC certification
BBFC certificationBBFC certification
BBFC certification
 
Conditionsforhumor 110827201652-phpapp01
Conditionsforhumor 110827201652-phpapp01Conditionsforhumor 110827201652-phpapp01
Conditionsforhumor 110827201652-phpapp01
 
Ромашка
РомашкаРомашка
Ромашка
 
PA e fatturazione elettronica in italia
PA e fatturazione elettronica in italiaPA e fatturazione elettronica in italia
PA e fatturazione elettronica in italia
 
Alteraciones del metabolismo del equilibrio acido base
Alteraciones del metabolismo del equilibrio acido baseAlteraciones del metabolismo del equilibrio acido base
Alteraciones del metabolismo del equilibrio acido base
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 
Projects
ProjectsProjects
Projects
 
39-103-1-PB (1)
39-103-1-PB (1)39-103-1-PB (1)
39-103-1-PB (1)
 

Similar to JS/Canvas Tutorial2

jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
 
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Yutaro Miyazaki
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
Kei Nakazawa
 
Firefox OSアプリ 「ModeView」
Firefox OSアプリ 「ModeView」Firefox OSアプリ 「ModeView」
Firefox OSアプリ 「ModeView」
Hideki Akiba
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
Yasuhito Yabe
 
Three.jsで3D気分
Three.jsで3D気分 Three.jsで3D気分
Three.jsで3D気分
Toshio Ehara
 
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成Kazuki Akiyama
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design Odyssey
Kenjiro Kubota
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
 
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
Kazunari Hara
 
入門機械学習読書会9章
入門機械学習読書会9章入門機械学習読書会9章
入門機械学習読書会9章
Kazufumi Ohkawa
 
第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016
kyoto university
 

Similar to JS/Canvas Tutorial2 (12)

jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
 
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
 
Firefox OSアプリ 「ModeView」
Firefox OSアプリ 「ModeView」Firefox OSアプリ 「ModeView」
Firefox OSアプリ 「ModeView」
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
 
Three.jsで3D気分
Three.jsで3D気分 Three.jsで3D気分
Three.jsで3D気分
 
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成CSSフレームワークを使った 簡単なレスポンシブデザインの作成
CSSフレームワークを使った 簡単なレスポンシブデザインの作成
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design Odyssey
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
 
Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~Native x Webでいいとこどり開発 ~ピグトーク~
Native x Webでいいとこどり開発 ~ピグトーク~
 
入門機械学習読書会9章
入門機械学習読書会9章入門機械学習読書会9章
入門機械学習読書会9章
 
第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016第四回 JavaScriptから始めるプログラミング2016
第四回 JavaScriptから始めるプログラミング2016
 

Recently uploaded

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
Osaka University
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
 

Recently uploaded (7)

「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
 
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMMハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライドHumanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
 
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代  The New Era of Content Economy Brought by Generative AI
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobodyロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
 

JS/Canvas Tutorial2