際際滷

際際滷Share a Scribd company logo
MPS Setagaya 及5指ミ`ティング
JavaScript でパックマン! 及2指
署徨匆
Morning Project Samurai 旗燕
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
書晩の朕
JavaScript (JS) で
Canvas に pac-man を宙く!
(Canvas への宙鮫にTれる!)
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
HTML と DOM Tree
DOM Tree?
(HTML畠悶)
JavaScript
Canvas?
(HTML勣殆)
1. Context の勣箔
2. Context
Context 3. や}の宙鮫凋綜
0-1. Canvas の勣箔
0-2. Canvas
HTML勣殆の畠てとそれを荷恬するための祇醤
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
Canvas勣殆
DOM Tree?
(HTML畠悶)
JavaScript
Canvas?
(HTML勣殆)
1. Context の勣箔
2. Context
Context 3. や}の宙鮫凋綜
0-1. Canvas の勣箔
0-2. Canvas
}を宙鮫して燕幣するための~FととP喘醤のセット
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
Context
DOM Tree?
(HTML畠悶)
JavaScript
Canvas?
(HTML勣殆)
1. Context の勣箔
2. Context
Context 3. や}の宙鮫凋綜
0-1. Canvas の勣箔
0-2. Canvas
}を宙鮫して燕幣するためのとP喘醤のセット
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
JSを喘いたHTML勣殆との
DOM Tree?
(HTML畠悶)
JavaScript
Canvas?
(HTML勣殆)
1. Context の勣箔
2. Context
Context 3. や}の宙鮫凋綜
0-1. Canvas の勣箔
0-2. Canvas
JavaScript で駅勣なものを1つ1つ桑に函り竃してゆく
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
Context オブジェクト
DOM Tree?
(HTML畠悶)
JavaScript
Canvas?
(HTML勣殆)
1. Context の勣箔
2. Context
Context 3. や}の宙鮫凋綜
0-1. Canvas の勣箔
0-2. Canvas
恷K議にとP喘醤を返に秘れたら宙鮫を佩う
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
Context のお}宙きツ`ル_
? 膨叔侘を宙くツ`ル?
context.?llRect(left, top, width, height)
? 劼鮹茲ツ`ル?
context.arc(cx, cy, r, s_angle, e_angle, c_clockwise)
? 輟里の弼を峺協するツ`ル?
context.strokeStyle = ^rgb(255, 0, 0) ̄?
context.strokeStyle = ^#FF0000 ̄
? 輟里Tりつぶし弼を峺協するツ`ル?
context.?llStyle = ^rgb(255, 0, 0) ̄?
context.?llStyle = ^#FF0000 ̄
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
念指いたスクリプト
<body>
<canvas id=^pac-man" width="300" height="150">?
canvas がサポ`トされてません。</canvas>
<script type="text/javascript">
var cv = document.getElementById(^pac-man ̄);
var ctx = cv.getContext(^2d");
ctx.?llStyle="#FF0000";
ctx.?llRect(20, 20, 150, 100);
</script>
</body>
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
念指いたスクリプト
<body>
<canvas id=^pac-man" width="300" height="150">?
canvas がサポ`トされてません。</canvas>
<script type="text/javascript">
var cv = document.getElementById(^pac-man ̄);
var ctx = cv.getContext(^2d");
ctx.?llStyle="#FF0000";
ctx.?llRect(20, 20, 150, 100);
</script>
</body>
キャンバスの
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
念指いたスクリプト
<body>
<canvas id=^pac-man" width="300" height="150">?
canvas がサポ`トされてません。</canvas>
<script type="text/javascript">
var cv = document.getElementById(^pac-man ̄);
var ctx = cv.getContext(^2d");
ctx.?llStyle="#FF0000";
ctx.?llRect(20, 20, 150, 100);
</script>
</body>
JS を喘いたHTML勣殆と context とのMPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
念指いたスクリプト
<body>
<canvas id=^pac-man" width="300" height="150">?
canvas がサポ`トされてません。</canvas>
<script type="text/javascript">
var cv = document.getElementById(^pac-man ̄);
var ctx = cv.getContext(^2d");
ctx.?llStyle="#FF0000";
ctx.?llRect(20, 20, 150, 100);
</script>
</body>
キャンバスとContext の函り竃し
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
念指いたスクリプト
<body>
<canvas id=^pac-man" width="300" height="150">?
canvas がサポ`トされてません。</canvas>
<script type="text/javascript">
var cv = document.getElementById(^pac-man ̄);
var ctx = cv.getContext(^2d");
ctx.?llStyle="#FF0000";
ctx.?llRect(20, 20, 150, 100);
</script>
</body>
Tりつぶしの弼のO協と、膨叔侘の宙鮫
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
g佩Y惚
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
念指のことも房い竃しながら
パックマンを宙いてみよう !
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
まずは劼鮹茲い討澆茲 !
<body>
<canvas id=^pac-man" width="200" height=^300 ̄>
canvs がサポ`トされていません。
</canvas>
<script>
var cv = document.getElementById(`pac-man');
var ctx = cv.getContext(^2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
</script>
</body> MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
g佩Y惚
橿来が宙かれない繁は、
ブラウザのデバッグツ`ルを聞ってみよう !
(念指のスライド歌孚)
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
まずは劼鮹茲い討澆茲 !
<body>
<canvas id=^pac-man" width="200" height=^300 ̄>
canvs がサポ`トされていません。
</canvas>
<script>
var cv = document.getElementById(`pac-man');
var ctx = cv.getContext(^2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
</script>
</body>
輟里涼荵スタイルのO協
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
まずは劼鮹茲い討澆茲 !
<body>
<canvas id=^pac-man" width="200" height=^300 ̄>
canvs がサポ`トされていません。
</canvas>
<script>
var cv = document.getElementById(`pac-man');
var ctx = cv.getContext(^2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
</script>
</body>
これから貧でO協したスタイルのもとで
宙鮫する輟里淋O協_兵MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
まずは劼鮹茲い討澆茲 !
<body>
<canvas id=^pac-man" width="200" height=^300 ̄>
canvs がサポ`トされていません。
</canvas>
<script>
var cv = document.getElementById(`pac-man');
var ctx = cv.getContext(^2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
</script>
</body>
宙鮫する劼緑里Q協?
(嶄伉(100, 100)で磯抄50の)MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
まずは劼鮹茲い討澆茲 !
<body>
<canvas id=^pac-man" width="200" height=^300 ̄>
canvs がサポ`トされていません。
</canvas>
<script>
var cv = document.getElementById(`pac-man');
var ctx = cv.getContext(^2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
</script>
</body> 劼TりつぶしでgHに宙鮫
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
arc() 
arc(嶄伉x, 嶄伉y, 磯抄, _兵叔業, K阻叔業, 郡r指り)
* _兵叔業、K阻叔業はラジアンで峺協?
(360業 = 2 * Math.PI ラジアン)
ctx.arc(100, 100, 50, 0, 1/2 * Math.PI, true);
ctx.arc(100, 100, 50, 0, 1/2 * Math.PI, false);
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
ここまでのまとめ
<script>
var cv = document.getElementById(`pac-man');
var ctx = cv.getContext(^2d ̄);
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
</script>
</body>
スタイルの
O協
スタイルの
m喘_兵
宙鮫する
輟里淋O協
gHに輟
を宙鮫
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
Q. パックマンに笥をいてみよう!
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
Q. パックマンに笥をいてみよう!
? ヒント1?
易い蛭侘を橿い来に嶷ねてやればいい!!
? ヒント2?
蛭侘はどうやって恬ればいい??
+
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
橿い劼鮹荵
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
ここから和で宙く
輟里楼徂
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
ここから和で宙く
輟里楼徂で
ラインの湊さは3
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
貧のスタイルO協のもと
宙鮫したい輟里鰓O協_兵
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
嶄伉叔が -30 から 30 の
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
宙鮫の_兵泣を(100, 100)
に卞
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
(100, 100)から峺協した恙
まで岷をO協 (易医歌孚)
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
匯つ念の岷のK泣から
峺協した恙砲泙盃云をO協
(易医歌孚)
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
書までO協してきた輟里
を宙鮫
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
A. パックマンに笥をいてみよう!
var cv = document.getElementById('pacman');
var ctx = cv.getContext("2d");
ctx.strokeStyle="#FF0000";
ctx.?llStyle="#FF0000";
ctx.beginPath();
ctx.arc(100, 100, 50, 0, 2 * Math.PI);
ctx.?ll();
ctx.strokeStyle="#FFFFFF";
ctx.?llStyle="#FFFFFF";
ctx.lineWidth=3;
ctx.beginPath();
ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180)
ctx.moveTo(100, 100);
ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180),
100 + 50 * Math.sin(-30 * Math.PI/180));
ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180),
100 + 50 * Math.sin(30 * Math.PI/180));
ctx.stroke();
ctx.?ll();
書までO協してきた輟里
Tりつぶして宙鮫
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
肝指
咾pac-man !!!
MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko

More Related Content

JavaScript でパックマン! 及2指

  • 1. MPS Setagaya 及5指ミ`ティング JavaScript でパックマン! 及2指 署徨匆 Morning Project Samurai 旗燕 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 2. 書晩の朕 JavaScript (JS) で Canvas に pac-man を宙く! (Canvas への宙鮫にTれる!) MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 3. HTML と DOM Tree DOM Tree? (HTML畠悶) JavaScript Canvas? (HTML勣殆) 1. Context の勣箔 2. Context Context 3. や}の宙鮫凋綜 0-1. Canvas の勣箔 0-2. Canvas HTML勣殆の畠てとそれを荷恬するための祇醤 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 4. Canvas勣殆 DOM Tree? (HTML畠悶) JavaScript Canvas? (HTML勣殆) 1. Context の勣箔 2. Context Context 3. や}の宙鮫凋綜 0-1. Canvas の勣箔 0-2. Canvas }を宙鮫して燕幣するための~FととP喘醤のセット MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 5. Context DOM Tree? (HTML畠悶) JavaScript Canvas? (HTML勣殆) 1. Context の勣箔 2. Context Context 3. や}の宙鮫凋綜 0-1. Canvas の勣箔 0-2. Canvas }を宙鮫して燕幣するためのとP喘醤のセット MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 6. JSを喘いたHTML勣殆との DOM Tree? (HTML畠悶) JavaScript Canvas? (HTML勣殆) 1. Context の勣箔 2. Context Context 3. や}の宙鮫凋綜 0-1. Canvas の勣箔 0-2. Canvas JavaScript で駅勣なものを1つ1つ桑に函り竃してゆく MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 7. Context オブジェクト DOM Tree? (HTML畠悶) JavaScript Canvas? (HTML勣殆) 1. Context の勣箔 2. Context Context 3. や}の宙鮫凋綜 0-1. Canvas の勣箔 0-2. Canvas 恷K議にとP喘醤を返に秘れたら宙鮫を佩う MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 8. Context のお}宙きツ`ル_ ? 膨叔侘を宙くツ`ル? context.?llRect(left, top, width, height) ? 劼鮹茲ツ`ル? context.arc(cx, cy, r, s_angle, e_angle, c_clockwise) ? 輟里の弼を峺協するツ`ル? context.strokeStyle = ^rgb(255, 0, 0) ̄? context.strokeStyle = ^#FF0000 ̄ ? 輟里Tりつぶし弼を峺協するツ`ル? context.?llStyle = ^rgb(255, 0, 0) ̄? context.?llStyle = ^#FF0000 ̄ MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 9. 念指いたスクリプト <body> <canvas id=^pac-man" width="300" height="150">? canvas がサポ`トされてません。</canvas> <script type="text/javascript"> var cv = document.getElementById(^pac-man ̄); var ctx = cv.getContext(^2d"); ctx.?llStyle="#FF0000"; ctx.?llRect(20, 20, 150, 100); </script> </body> MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 10. 念指いたスクリプト <body> <canvas id=^pac-man" width="300" height="150">? canvas がサポ`トされてません。</canvas> <script type="text/javascript"> var cv = document.getElementById(^pac-man ̄); var ctx = cv.getContext(^2d"); ctx.?llStyle="#FF0000"; ctx.?llRect(20, 20, 150, 100); </script> </body> キャンバスの MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 11. 念指いたスクリプト <body> <canvas id=^pac-man" width="300" height="150">? canvas がサポ`トされてません。</canvas> <script type="text/javascript"> var cv = document.getElementById(^pac-man ̄); var ctx = cv.getContext(^2d"); ctx.?llStyle="#FF0000"; ctx.?llRect(20, 20, 150, 100); </script> </body> JS を喘いたHTML勣殆と context とのMPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 12. 念指いたスクリプト <body> <canvas id=^pac-man" width="300" height="150">? canvas がサポ`トされてません。</canvas> <script type="text/javascript"> var cv = document.getElementById(^pac-man ̄); var ctx = cv.getContext(^2d"); ctx.?llStyle="#FF0000"; ctx.?llRect(20, 20, 150, 100); </script> </body> キャンバスとContext の函り竃し MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 13. 念指いたスクリプト <body> <canvas id=^pac-man" width="300" height="150">? canvas がサポ`トされてません。</canvas> <script type="text/javascript"> var cv = document.getElementById(^pac-man ̄); var ctx = cv.getContext(^2d"); ctx.?llStyle="#FF0000"; ctx.?llRect(20, 20, 150, 100); </script> </body> Tりつぶしの弼のO協と、膨叔侘の宙鮫 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 14. g佩Y惚 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 15. 念指のことも房い竃しながら パックマンを宙いてみよう ! MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 16. まずは劼鮹茲い討澆茲 ! <body> <canvas id=^pac-man" width="200" height=^300 ̄> canvs がサポ`トされていません。 </canvas> <script> var cv = document.getElementById(`pac-man'); var ctx = cv.getContext(^2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); </script> </body> MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 18. まずは劼鮹茲い討澆茲 ! <body> <canvas id=^pac-man" width="200" height=^300 ̄> canvs がサポ`トされていません。 </canvas> <script> var cv = document.getElementById(`pac-man'); var ctx = cv.getContext(^2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); </script> </body> 輟里涼荵スタイルのO協 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 19. まずは劼鮹茲い討澆茲 ! <body> <canvas id=^pac-man" width="200" height=^300 ̄> canvs がサポ`トされていません。 </canvas> <script> var cv = document.getElementById(`pac-man'); var ctx = cv.getContext(^2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); </script> </body> これから貧でO協したスタイルのもとで 宙鮫する輟里淋O協_兵MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 20. まずは劼鮹茲い討澆茲 ! <body> <canvas id=^pac-man" width="200" height=^300 ̄> canvs がサポ`トされていません。 </canvas> <script> var cv = document.getElementById(`pac-man'); var ctx = cv.getContext(^2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); </script> </body> 宙鮫する劼緑里Q協? (嶄伉(100, 100)で磯抄50の)MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 21. まずは劼鮹茲い討澆茲 ! <body> <canvas id=^pac-man" width="200" height=^300 ̄> canvs がサポ`トされていません。 </canvas> <script> var cv = document.getElementById(`pac-man'); var ctx = cv.getContext(^2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); </script> </body> 劼TりつぶしでgHに宙鮫 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 22. arc() arc(嶄伉x, 嶄伉y, 磯抄, _兵叔業, K阻叔業, 郡r指り) * _兵叔業、K阻叔業はラジアンで峺協? (360業 = 2 * Math.PI ラジアン) ctx.arc(100, 100, 50, 0, 1/2 * Math.PI, true); ctx.arc(100, 100, 50, 0, 1/2 * Math.PI, false); MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 23. ここまでのまとめ <script> var cv = document.getElementById(`pac-man'); var ctx = cv.getContext(^2d ̄); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); </script> </body> スタイルの O協 スタイルの m喘_兵 宙鮫する 輟里淋O協 gHに輟 を宙鮫 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 24. Q. パックマンに笥をいてみよう! MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 25. Q. パックマンに笥をいてみよう! ? ヒント1? 易い蛭侘を橿い来に嶷ねてやればいい!! ? ヒント2? 蛭侘はどうやって恬ればいい?? + MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 26. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 27. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); 橿い劼鮹荵 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 28. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); ここから和で宙く 輟里楼徂 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 29. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); ここから和で宙く 輟里楼徂で ラインの湊さは3 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 30. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); 貧のスタイルO協のもと 宙鮫したい輟里鰓O協_兵 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 31. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); 嶄伉叔が -30 から 30 の MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 32. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); 宙鮫の_兵泣を(100, 100) に卞 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 33. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); (100, 100)から峺協した恙 まで岷をO協 (易医歌孚) MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 34. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); 匯つ念の岷のK泣から 峺協した恙砲泙盃云をO協 (易医歌孚) MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 35. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); 書までO協してきた輟里 を宙鮫 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 36. A. パックマンに笥をいてみよう! var cv = document.getElementById('pacman'); var ctx = cv.getContext("2d"); ctx.strokeStyle="#FF0000"; ctx.?llStyle="#FF0000"; ctx.beginPath(); ctx.arc(100, 100, 50, 0, 2 * Math.PI); ctx.?ll(); ctx.strokeStyle="#FFFFFF"; ctx.?llStyle="#FFFFFF"; ctx.lineWidth=3; ctx.beginPath(); ctx.arc(100, 100, 50, -30 * Math.PI/180, 30 * Math.PI/180) ctx.moveTo(100, 100); ctx.lineTo(100 + 50 * Math.cos(-30 * Math.PI/180), 100 + 50 * Math.sin(-30 * Math.PI/180)); ctx.lineTo(100 + 50 * Math.cos(30 * Math.PI/180), 100 + 50 * Math.sin(30 * Math.PI/180)); ctx.stroke(); ctx.?ll(); 書までO協してきた輟里 Tりつぶして宙鮫 MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko
  • 37. 肝指 咾pac-man !!! MPS Setagaya 及5指 (2015/09/13)ミ`ティングY創 (c) Junya Kaneko