Top Banner
enchant.jsでゲーム制作を はじめてみよう 「パンダの会」バージョン 2012.9.15 「パンダの会」 その七 3panda(Ryota Shiroguchi)
60

enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

Jul 11, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

enchant.jsでゲーム制作を

はじめてみよう「パンダの会」バージョン

2012.9.15「パンダの会」 その七

3panda(Ryota Shiroguchi)

Page 2: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

私について

●@3panda

●仕事はHTMLとかCSS触ってます。

●プログラムは 苦手です。

●ファミコン世代です。

●パンダが大好きです。

Page 3: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

このお話の流れ

●enchant.jsについて

●スタートアップ

●ゲーム的な動きをつくる(デモ&解説)

●ゲームを作ってみました!

●まとめ

Page 4: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

enchant.jsについて

Page 5: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

enchant.jsとは

●ゲームエンジン

●HTML5 + JavaScript

●クロスプラットフォーム

●日本製(株式会社ユビキタスエンターテインメントが公開)

Page 6: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

enchant.jsの良いところ

●スタートアップが楽ちん

●サンプルが豊富

●ドキュメントが日本語

●公式のプラグインも豊富

Page 7: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

スタートアップ

Page 8: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

スタートアップ HTML<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <title>enchant</title> <script type="text/javascript" src="enchant.js"></script> <script type="text/javascript" src="game.js"></script> <style type="text/css"> body { margin: 0; } </style> </head> <body> </body></html>

Page 9: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

スタートアップ HTML<!DOCTYPE html><html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> <title>enchant</title> <script type="text/javascript" src="enchant.js"></script> <script type="text/javascript" src="game.js"></script> <style type="text/css"> body { margin: 0; } </style> </head> <body> </body></html>

enchant.jsを読み込む

実行用jsファイル※を読み込む。

HTMLに直接記述も可能。

※今回はgame.jsとしていますが何でもOK

Page 10: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

スタートアップ game.jsenchant();window.onload=function(){ var game = new Game(320, 320);

   //ここで初期化

 game.onload = function(){

   //ここにゲーム処理を書く

 }

 game.start();

}

Page 11: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

スタートアップ game.jsenchant();window.onload=function(){ var game = new Game(320, 320);

   //ここで初期化

 game.onload = function(){

   //ここにゲーム処理を書く

 }

 game.start();

}

enchantのお約束!

JavaScriptのお約束!

Page 12: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

スタートアップ game.jsenchant();window.onload=function(){ var game = new Game(320, 320);

   //ここで初期化

 game.onload = function(){   //ここにゲーム処理を書く

 } game.start();}

ゲームをスタート!

ゲーム(オブジェクト)を生成

ゲーム中の処理

Page 13: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲーム的な動きをつくる

Page 14: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲーム的な動きを作る

●まずはキャラの配置

●キャラを動かす

●ステージを配置する

●当たり判定

●ゲームスタート&ゲームオーバー

●コントローラーの設置(タッチデバイス用)

Page 15: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

まずはキャラの配置 

クマさん

Page 16: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

まずはキャラの配置 game.jsvar game = new Game(320, 320);  game.fps = 24;

game.preload('chara1.gif'); game.onload = function(){  //キャラクター

var bear = new Sprite(32, 32); bear.image = game.assets['chara1.gif']; //rootSceneに追加

game.rootScene.addChild(bear); }

 game.start();

}

Page 17: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

まずはキャラの配置 game.jsvar game = new Game(320, 320); game.fps = 24; game.preload('chara1.gif'); game.onload = function(){  //キャラクター

var bear = new Sprite(32, 32); bear.image = game.assets['chara1.gif']; //rootSceneに追加

game.rootScene.addChild(bear); }

 game.start();

}

フレームレートの設定

画像のプリロード

スプライトの生成

画像の指定

※ルートシーンに追加

Page 18: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

デモ

Page 19: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

キャラを動かす

クマさん走る

Page 20: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

キャラを動かす

//bearの動きの設定 イベントはフレーム毎

bear.addEventListener(Event.ENTER_FRAME, function() {

//左if (game.input.left) {

this.x -= 3; this.scaleX = -1;

}//・・・省略・・・

});

Page 21: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

キャラを動かす

//bearの動きの設定 イベントはフレーム毎

bear.addEventListener(Event.ENTER_FRAME, function() {

//左if (game.input.left) {

this.x -= 3; this.scaleX = -1;

}//・・・省略・・・

});

キャラにイベントリスナーを追加

Page 22: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

キャラを動かす

//bearの動きの設定 イベントはフレーム毎

bear.addEventListener(Event.ENTER_FRAME, function() {

//左if (game.input.left) {

this.x -= 3; this.scaleX = -1;

}//・・・省略・・・

});

イベントはフレーム毎

Page 23: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

デモ

Page 24: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ステージを配置する

Page 25: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ステージを配置する

//MAPを表示させる

var blocks = [[ -1, -1,//省略// -1, -1, -1, -1 ],

////////////////省略/////////////////////

[ 0, 0, 0, 0,//省略// 0, 0, 0, 0 ],

[ 1, 1, 1, 1,//省略// 1, 1, 1, 1 ]

];var map = new Map(16, 16);map.image = game.assets["map2.gif"];map.loadData(blocks);

Page 26: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ステージを配置する

//MAPを表示させる

var blocks = [[ -1, -1,//省略// -1, -1, -1, -1 ],

////////////////省略/////////////////////

[ 0, 0, 0, 0,//省略// 0, 0, 0, 0 ],

[ 1, 1, 1, 1,//省略// 1, 1, 1, 1 ]

];var map = new Map(16, 16);map.image = game.assets["map2.gif"];map.loadData(blocks);

配列で表示する画像を管

タイルの一コマづつ敷き

詰めるように配置。

Page 27: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ステージを配置する

//MAPを表示させる

var blocks = [[ -1, -1,//省略// -1, -1, -1, -1 ],

////////////////省略/////////////////////

[ 0, 0, 0, 0,//省略// 0, 0, 0, 0 ],

[ 1, 1, 1, 1,//省略// 1, 1, 1, 1 ]

];var map = new Map(16, 16);map.image = game.assets["map2.gif"];map.loadData(blocks);

Map(オブジェクト)を生成Map(オブジェクト)を生成

配列を呼び出し配置

画像の指定

Page 28: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ステージを配置する

map2.gif

Page 29: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ステージを配置する

生成したオブジェクトのサイズで配列として扱える

Page 30: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ステージを配置する

 game.onload = function(){

//---------------省略-------------------//

//rootSceneに追加

game.rootScene.addChild(bear); game.rootScene.addChild(map);

 }

 game.start();

}

※ルートシーンに追加

※オブジェクトは

シーンに追加する事で表示

Page 31: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

デモ

Page 32: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

実はクマさんも・・・

chara1.gif

Page 33: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

実はクマさんも・・・

「chara1.gif」を切り出して呼び出している

サイズ(32,32)

Page 34: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

実はクマさんも・・・

「bear.frame = 番号」

で何番目を表示するか指定する。

デフォルトは0(1番目)

Page 35: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

当たり判定

当たった!!!

Page 36: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

当たり判定

//星を表示

var star = new Sprite(16, 16);star.image = game.assets['icon0.gif'];star.frame = [30];

//-------------------省略--------------------//

//星との当たり判定

if(this.within(star, 15)) {label.text = '当たった!';

this.frame = 3;}

Page 37: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

当たり判定

//星を表示

var star = new Sprite(16, 16);star.image = game.assets['icon0.gif'];star.frame = [30];

//-------------------省略--------------------//

//星との当たり判定

if(this.within(star, 15)) {label.text = '当たった!';

this.frame = 3;}

キャラを一つ追加

Page 38: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

当たり判定

//星を表示

var star = new Sprite(16, 16);star.image = game.assets['icon0.gif'];star.frame = [30];

//-------------------省略--------------------//

//星との当たり判定

if(this.within(star, 15)) {label.text = '当たった!';

this.frame = 3;}

当たり判定の処理intersect,またはwithin

メソッドを利用。※

※補足・intersec()では矩形同士の距離・within()では中心からの距離

Page 39: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

デモ

Page 40: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲームスタート&ゲームオーバー

Page 41: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲームスタート&ゲームオーバー

ゲームスタートとゲームオーバーの画像を用意

Page 42: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲームスタート&ゲームオーバー

(注意)HTMLファイルと同じ階層に置きましょう。

Page 43: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲームスタート&ゲームオーバー

ゲームスタートは画像を用意するだけでOK

Page 44: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

nineleap.enchant.jsを読み込む

ゲームスタート&ゲームオーバー HTML

<html>//-------------------省略--------------------//<head><script type="text/javascript" src="enchant.js"></script><script type="text/javascript" src="nineleap.enchant.js"></script><script type="text/javascript" src="game.js"></script>//-------------------省略--------------------//</html>

nineleap.enchant.jsを読み込む

Page 45: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲームスタート&ゲームオーバー

//星を表示

var star = new Sprite(16, 16);star.image = game.assets['icon0.gif'];

//-------------------省略--------------------//

//星との当たり判定

if(this.within(star, 15)) {this.frame = 3;game.end();

}

ゲームオーバーの

処理

Page 46: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

デモ

Page 47: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

コントローラーの設置(タッチデバイス用)

Page 48: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

pad.png

コントローラーの設置(タッチデバイス用)

Page 49: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

(注意)HTMLファイルと同じ階層に置きましょう。

コントローラーの設置(タッチデバイス用)

Page 50: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

<html>//-------------------省略--------------------//<head><script type="text/javascript" src="enchant.js"></script><script type="text/javascript" src="ui.enchant.js"></script><script type="text/javascript" src="game.js"></script>//-------------------省略--------------------//</html>

ui.enchant.jsを読み込む

コントローラーの設置(タッチデバイス用)

Page 51: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

コントローラーの設置(タッチデバイス用)

game.onload = function() {//-------------------省略--------------------//

// バーチャルキーパッドを生成

var pad = new Pad();pad.moveTo(0, 220);

//-------------------省略--------------------//

バーチャルキーパッドを生

Page 52: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

コントローラーの設置(タッチデバイス用)

game.onload = function() {//-------------------省略--------------------//

// バーチャルキーパッドを生成

var pad = new Pad();pad.moveTo(0, 220);

//-------------------省略--------------------//バーチャルキーパッドを配

Page 53: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

デモ

Page 54: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ゲームを作ってみました!

Page 55: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

デモ

Page 56: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

なんとかゲームぽいものが出来ました!

Page 57: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

まとめ

Page 58: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

まとめ

●スタートアップがらくちん

●必要なものがそろっている

●少ないコードでゲームが作れる

●プログラムの学習にも最適

Page 59: enchant.jsでゲーム制作をはじめてみよう 「パンダの会」バージョン

ありがとうございました