狠狠撸

狠狠撸Share a Scribd company logo
MCAゲーム開発講座
JSをいじってJCを扱えるようになろう
About Me
> ソフトウェア情報学部 1 年
> プログラミング歴8年 (9年目)
> 言語
- (話せる) 日本語 (英語?)
- (得意) JavaScript
- (語れる) Haxe
- (憧れ) CommonLisp
講座の概要
> 実装部ではこれまでプログラミングの勉強を行ってきました
> Q:何のために?
> A:ゲームを作るため!
> んじゃそろそろゲーム作ろうか?
今回作るもの
> 言語
- HTML/JavaScript
> ジャンル
- シューティングゲーム
> 動作環境
- PC
- スマートフォン(※)
> その他
- 1人プレイ
- ステージは1つ
- 自機は×3
- パワーアップ有り
- スコア(ツイート)
講座の準備
> Google Chrome
> Firefox
> Sublime Text 3 (MCA実装部仕様)
- 日本語化
- プラグイン導入済み
- 研究室で使える
> すげえ!!俺ゲーム作ってる!!
- ( ????`)どや
ブラウザ
エディタ
ドヤリティ
講座の準備
> 講座資料
- ここ(https://github.com/tamamu/js_tutorial)
> 質問用Slack
- ここ(https://mca-dev.slack.com/)
第1回 下ごしらえ
~index.htmlにgame.jsを添えて~
MCAゲーム開発講座
変数(オブジェクト)の扱い
> 宣言
- var hoge;
- この時点でhogeの中身はundefined(未定義)
> 代入
- hoge = 10;
> 型
- JSでは型(intとかstringとか)に関するルールが緩い
- 1 + 1 := 2
- "Hello" + "World" := "HelloWorld"
- "No." + 1 := "No.1"
window.onload
> game.js 2行目
window.onload=function(){
~~~~~
}
HTML/JS特有の関数(最初から存在している)
ブラウザ側でHTMLの読み込みが終わったら実行される。
これより前に3行目を実行するとエラー(<canvas>が存在しない)
document.getElementById
> game.js 3行目
canvas = document.getElementById("game");
HTML/JS特有の関数
HTMLファイルのタグをIDで取得する
HTMLファイルとJSでIDを揃えること(間違えやすい!)
Canvasオブジェクト
> HTMLで言えば<canvas>
> 今回はゲーム画面として扱う
> 持っているプロパティ(変数)
- width (幅)
- height (高さ)
> 持っているメソッド(関数)
- getContext (描画系を取得)
> fillStyle = "COLOR"
- 塗りつぶしの色を指定
> strokeStyle = "COLOR"
- 線の色を指定
> fillRect(x, y, w, h)
- 矩形塗りつぶし
> lineWidth = INT
- 線の幅を指定(実数)
> lineCap="STYLE"
- 線の端の処理方法を指定
- butt,square, round
Contextの操作
> beginPath()
- パスの作成開始
> moveTo(x, y)
- パスの始点を指定
> lineTo(x, y)
- 直線パスを作成
> arc(x, y, r, s, e, reverse?)
- 円弧パスを作成
> stroke()
- パスに沿って線を描く
> fill()
- パスに沿って塗りつぶし
次回
へ続
く

More Related Content

What's hot (10)

chrome拡張機能で ブラウザにp5jsを召喚!
chrome拡張機能で ブラウザにp5jsを召喚!chrome拡張機能で ブラウザにp5jsを召喚!
chrome拡張機能で ブラウザにp5jsを召喚!
takaguru
?
74迟丑オンラインテキストブックマーク
74迟丑オンラインテキストブックマーク74迟丑オンラインテキストブックマーク
74迟丑オンラインテキストブックマーク
74th
?
HokurikuUnConference: Windows7
HokurikuUnConference: Windows7HokurikuUnConference: Windows7
HokurikuUnConference: Windows7
guest3820592
?
『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス
Ayumu Kohiyama
?
笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る
笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る
笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る
Yoshio Hanawa
?
Chainer meetup
Chainer meetupChainer meetup
Chainer meetup
kikusu
?
Flash Playerの作り方
Flash Playerの作り方Flash Playerの作り方
Flash Playerの作り方
Yu Kobayashi
?
OSC2015大分 Scratch資料
OSC2015大分 Scratch資料OSC2015大分 Scratch資料
OSC2015大分 Scratch資料
俊之 渡邊
?
Photon フラッシュブラウザ
Photon フラッシュブラウザPhoton フラッシュブラウザ
Photon フラッシュブラウザ
XMLProJ2014
?
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島
なおき きしだ
?
chrome拡張機能で ブラウザにp5jsを召喚!
chrome拡張機能で ブラウザにp5jsを召喚!chrome拡張機能で ブラウザにp5jsを召喚!
chrome拡張機能で ブラウザにp5jsを召喚!
takaguru
?
74迟丑オンラインテキストブックマーク
74迟丑オンラインテキストブックマーク74迟丑オンラインテキストブックマーク
74迟丑オンラインテキストブックマーク
74th
?
HokurikuUnConference: Windows7
HokurikuUnConference: Windows7HokurikuUnConference: Windows7
HokurikuUnConference: Windows7
guest3820592
?
『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス
Ayumu Kohiyama
?
笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る
笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る
笔贬笔-贵笔惭と耻奥厂骋滨——尘辞诲冲辫丑辫以外の选択肢を探る
Yoshio Hanawa
?
Chainer meetup
Chainer meetupChainer meetup
Chainer meetup
kikusu
?
Flash Playerの作り方
Flash Playerの作り方Flash Playerの作り方
Flash Playerの作り方
Yu Kobayashi
?
OSC2015大分 Scratch資料
OSC2015大分 Scratch資料OSC2015大分 Scratch資料
OSC2015大分 Scratch資料
俊之 渡邊
?
Photon フラッシュブラウザ
Photon フラッシュブラウザPhoton フラッシュブラウザ
Photon フラッシュブラウザ
XMLProJ2014
?
これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島これからのコンピューティングの変化とこれからのプログラミング at 広島
これからのコンピューティングの変化とこれからのプログラミング at 広島
なおき きしだ
?

Recently uploaded (8)

Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
?
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
?
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
?
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
?
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
?
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ドメインモデリング基本编①词全体の流れ2025冲02冲27社内向け开催.辫辫迟虫
ssuserfcafd1
?
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
?
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
滨肠丑颈颈搁颈办颈蝉耻办别冲理学疗法士间の知识共有に向けた临床推论テキストの构造化に関する研究.辫诲蹿
Matsushita Laboratory
?

JS/Canvas Tutorial1