SlideShare una empresa de Scribd logo
1 de 165
Descargar para leer sin conexión
enchant.js
チュートリアル
  UEI/ARC Makoto Kondo
自己紹介

株式会社ユビキタスエンターテインメント

ARC 秋葉原リサーチセンター研究員

プログラマ(iOS/Android/i-modeなど)
enchant.jsを使って
シューティングゲーム
   を作ろう!
有名なSTG




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
シューティングゲームには、
 最低限何が必要か?
共通点は?




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
1.自機がいる




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
2.敵機がいる




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
3.弾を撃てる




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
4.弾で敵を倒せる




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
5.ゲームオーバーがある




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
6.スコアがある




 ゼビウス      グラディウス      R-TYPE
ナムコ 1982   コナミ 1985   アイレム 1987
必要な要素(a.k.a.仕様)
1. 自機がでる

2. 敵がでる

3. 弾を撃てる

4. 弾で敵を倒せる

5. ゲームオーバーになる

6. スコアがある
もう少し細かく
1. 自機がでる        0.enchant.js初期化

2. 敵がでる         1.1自機を動かす

3. 弾を撃てる
                 2.1敵を動かす
4. 弾で敵を倒せる
                 3.1弾を動かす
5. ゲームオーバーになる

6. スコアがある
まとめると、、、
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
1.enchant.js初期化
1.enchant.js初期化
1. 好きな場所にフォルダを作る

2. フォルダの中にenchant.jsを入れる

3. 以下のファイルを作る

• index.html
• main.js
1.enchant.js初期化
    index.html
<html>
<head>
<script type=‘text/javascript’ src=‘enchant.js’></script>
<script type=‘text/javascript’ src=‘main.js’></script>
</head>
</html>

   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
   game.onload=function(){
      console.log(‘Hello, enchant.js!!’);
   };
   game.start();
};
1.enchant.js初期化
4. ブラウザにindex.htmlをドラッグ&ドロップ
1.enchant.js初期化
5. ブラウザのjavascriptコンソールを開く
1.enchant.js初期化
6. コンソールにHello, enchant.js!!と表示される
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
   game.onload=function(){
      console.log(‘Hello, enchant.js!!’);
   };
   game.start();
};
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
                                       enchant.jsの読み込み
   game.onload=function(){
      console.log(‘Hello, enchant.js!!’);   (おまじない)
   };
   game.start();
};
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
   game.onload=function(){
                                            ページ読み込み
      console.log(‘Hello, enchant.js!!’);
   };                                       完了の処理の設定
   game.start();
};
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
   game.onload=function(){
      console.log(‘Hello, enchant.js!!’);   実際の処理
   };
   game.start();
};
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);         Gameクラスの初期化
   game.onload=function(){
      console.log(‘Hello, enchant.js!!’);
   };
   game.start();
};
1.enchant.js初期化
Gameクラス
1.enchant.js初期化
Gameクラス
1.enchant.js初期化
クラスとは?
1.enchant.js初期化
クラスとは?




         Game
1.enchant.js初期化
クラスとは?

Sprite
         Game
1.enchant.js初期化
クラスとは?

Sprite
         Game

Label
1.enchant.js初期化
クラスとは?

Sprite          Scene
         Game

Label
1.enchant.js初期化
クラスとは?

Sprite            Scene
         Game

Label           Surface
1.enchant.js初期化
   クラスとは?

データと関連する処理をひとまとめにした、意味の
ある一つのまとまり。
enchant.jsには、Game, Sprite, Labelなどいろいろな
クラスが存在する。
1.enchant.js初期化
Gameクラスが持つデータ
1.enchant.js初期化
Gameクラスが持つ処理
1.enchant.js初期化
     クラスの定義方法
enchant();
var MyClass = Class.create({
  initialize:function(){
    console.log(‘My Class Init’);
  },
  myMethod:function(){
    console.log(‘My Method’);
  }
});

var myInstance = new MyClass();
myInstance.myMethod();
1.enchant.js初期化
     クラスの定義方法
                                    クラスの生成
enchant();
var MyClass = Class.create({
  initialize:function(){
    console.log(‘My Class Init’);
  },
  myMethod:function(){
    console.log(‘My Method’);
  }
});

var myInstance = new MyClass();
myInstance.myMethod();
1.enchant.js初期化
     クラスの定義方法
enchant();
var MyClass = Class.create({
  initialize:function(){
    console.log(‘My Class Init’);
  },
  myMethod:function(){
    console.log(‘My Method’);       親クラス
  }
});

var myInstance = new MyClass();
myInstance.myMethod();
1.enchant.js初期化
     クラスの定義方法
enchant();
var MyClass = Class.create({
  initialize:function(){
    console.log(‘My Class Init’);
  },
  myMethod:function(){
    console.log(‘My Method’);       コンストラクタ
  }
});

var myInstance = new MyClass();
myInstance.myMethod();
1.enchant.js初期化
     クラスの定義方法
enchant();
var MyClass = Class.create({
  initialize:function(){
    console.log(‘My Class Init’);
  },
  myMethod:function(){
    console.log(‘My Method’);
  }                                 メソッドの定義
});

var myInstance = new MyClass();
myInstance.myMethod();
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
   game.onload=function(){                  Gameクラスの
      console.log(‘Hello, enchant.js!!’);
   };
   game.start();                            初期化完了の処理
};
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
   game.onload=function(){
      console.log(‘Hello, enchant.js!!’);   ゲームの処理
   };
   game.start();
};
1.enchant.js初期化
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
   game.onload=function(){
      console.log(‘Hello, enchant.js!!’);
   };
   game.start();                            ゲームの開始
};
1.enchant.js初期化
 Game.start()

ゲームを開始する. enchant.Game#fpsで設定された
フレームレートに従ってenchant.Game#currentScene
のフレームの更新が行われるようになる.
プリロードする画像が存在する場合はロードが始まり
ローディング画面が表示される.
1.enchant.js初期化
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
2.自機を出す
     1. enchant.jsに同梱のchara1.gifをフォルダに入れる

     2. main.jsを以下のように書き換える
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
  game.preload(‘chara1.gif’);
   game.onload=function(){
     var player=new Sprite(32, 32);
     player.image=game.assets[‘chara1.gif’];
     game.rootScene.addChild(player);
   };
   game.start();
};
2.自機を出す
3. ブラウザのキャッシュを消す
2.自機を出す
4. ブラウザをリロード
2.自機を出す
4. ブラウザをリロード




          自機がでた
2.自機を出す
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
  game.preload(‘chara1.gif’);
   game.onload=function(){
     var player=new Sprite(32, 32);
     player.image=game.assets[‘chara1.gif’];
     game.rootScene.addChild(player);
   };
   game.start();
};
2.自機を出す
   main.js
enchant();
window.onload=function(){             画像の読み込み
   var game=new Game(320, 320);
  game.preload(‘chara1.gif’);
   game.onload=function(){
     var player=new Sprite(32, 32);
     player.image=game.assets[‘chara1.gif’];
     game.rootScene.addChild(player);
   };
   game.start();
};
2.自機を出す
 game.preload(‘chara1.gif’)とは?
wise9-enchant.js-..../doc/ja/index.html
2.自機を出す
 game.preload(‘chara1.gif’)とは?
enchant.Gameをクリック
2.自機を出す
 game.preload(‘chara1.gif’)とは?
enchant.Game.preloadをさがす
2.自機を出す
game.preload(‘chara1.gif’)とは?
説明文を読んでみる




                                サンプル
2.自機を出す
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
  game.preload(‘chara1.gif’);
   game.onload=function(){
     var player=new Sprite(32, 32);
     player.image=game.assets[‘chara1.gif’];
     game.rootScene.addChild(player);
   };
   game.start();
};
2.自機を出す
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
  game.preload(‘chara1.gif’);
   game.onload=function(){
     var player=new Sprite(32, 32);
                                               自機の生成
     player.image=game.assets[‘chara1.gif’];
     game.rootScene.addChild(player);
   };
   game.start();
};
2.自機を出す
var player=new Sprite(32, 32);
2.自機を出す
var player=new Sprite(32, 32);
2.自機を出す
var player=new Sprite(32, 32);
2.自機を出す
var player=new Sprite(32, 32);
2.自機を出す
var player=new Sprite(32, 32);




                  =32
2.自機を出す
var player=new Sprite(32, 32);




                  =32
2.自機を出す
var player=new Sprite(32, 32);




                  =32
                  =32
2.自機を出す
var player=new Sprite(32, 32);




                  =32       32




                                 32
                  =32
2.自機を出す
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
  game.preload(‘chara1.gif’);
   game.onload=function(){
     var player=new Sprite(32, 32);
     player.image=game.assets[‘chara1.gif’];

   };
     game.rootScene.addChild(player);          画像の設定
   game.start();
};
2.自機を出す
player.image=game.assets[‘chara1.gif’];
2.自機を出す
player.image=game.assets[‘chara1.gif’];
2.自機を出す
player.image=game.assets[‘chara1.gif’];
2.自機を出す
player.image=game.assets[‘chara1.gif’];
2.自機を出す
player.image=game.assets[‘chara1.gif’];
2.自機を出す
player.image=game.assets[‘chara1.gif’];




     ロードされたchara1.gifを
    playerの画像として表示する
2.自機を出す
   main.js
enchant();
window.onload=function(){
   var game=new Game(320, 320);
  game.preload(‘chara1.gif’);
   game.onload=function(){
     var player=new Sprite(32, 32);
     player.image=game.assets[‘chara1.gif’];
     game.rootScene.addChild(player);
   };

};
   game.start();
                                       シーンに追加して表示
2.自機を出す
        game.rootScene.addChild(player);
enchant.Game              enchant.Scene




enchant.Group
2.自機を出す
        game.rootScene.addChild(player);
enchant.Game              enchant.Scene




enchant.Group
2.自機を出す
        game.rootScene.addChild(player);
enchant.Game              enchant.Scene




enchant.Group
2.自機を出す
        game.rootScene.addChild(player);
enchant.Game              enchant.Scene




enchant.Group
2.自機を出す
        game.rootScene.addChild(player);
enchant.Game              enchant.Scene




enchant.Group
2.自機を出す
        game.rootScene.addChild(player);
enchant.Game              enchant.Scene




enchant.Group




        Gameの表示ツリーにplayerを追加する
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
3.自機を動かす
        1. main.jsを以下のように書き換える

      main.js
enchant();
window.onload=function(){
    //...中略...
       player.image=game.assets[‘chara1.gif’];
       game.rootScene.addChild(player);
       game.rootScene.addEventListener(‘touchstart’, function(e){
         player.y=e.y;
       });
     };
     game.start();
};
3.自機を動かす
2. ブラウザのキャッシュを消す
3.自機を動かす
3. ブラウザをリロード
3.自機を動かす
4. 画面をクリック
3.自機を動かす
4. 画面をクリック
3.自機を動かす
      main.js
enchant();
window.onload=function(){           画面のタッチの処理の設定
    //...中略...
       player.image=game.assets[‘chara1.gif’];
       game.rootScene.addChild(player);
       game.rootScene.addEventListener(‘touchstart’, function(e){
         player.y=e.y;
       });
     };
     game.start();
};
3.自機を動かす
 EventTarget.addEventListener(type, listener);

イベントリスナを追加する。typeに
は‘enterframe’や‘touchstart‘などが利用でき、それらの
イベントが起きたときに、listenerを実行する。
EventTargetを継承するSpriteやSceneなど様々なクラ
スから利用可能
3.自機を動かす
      main.js
enchant();
window.onload=function(){
    //...中略...
       player.image=game.assets[‘chara1.gif’];
       game.rootScene.addChild(player);
       game.rootScene.addEventListener(‘touchstart’, function(e){
         player.y=e.y;
       });
     };

};
     game.start();
                                    タッチされたときの処理
3.自機を動かす
 Node.y
Nodeのy座標の値。読み込む事も、書き込む事も可能
である。yのプロパティはSpriteが継承しているNodeに
て定義されているので、Spriteでも利用可能
3.自機を動かす
      main.js
enchant();
window.onload=function(){
    //...中略...
       player.image=game.assets[‘chara1.gif’];
       game.rootScene.addChild(player);
       game.rootScene.addEventListener(‘touchstart’, function(e){
         player.y=e.y;
       });
     };
     game.start();
};
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
4.敵を出す
 1. enchant.jsに同梱のchara2.gifをフォルダに入れる

 2. main.jsを以下のように書き換える
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’);
//...中略...
game.rootScene.addChild(player);
var enemy = new Sprite(32, 32);
enemy.image = game.assets[‘chara2.gif’];
enemy.x = 320 - 32;
enemy.y = 320 * Math.random();
game.rootScene.addChild(enemy);
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
4.敵を出す
3. ブラウザのキャッシュを消す
4.敵を出す
4. ブラウザをリロード
4.敵を出す
main.js                               敵の画像の読み込み
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’);
//...中略...
game.rootScene.addChild(player);
var enemy = new Sprite(32, 32);
enemy.image = game.assets[‘chara2.gif’];
enemy.x = 320 - 32;
enemy.y = (320 - 32) * Math.random();
game.rootScene.addChild(enemy);
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
4.敵を出す
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’);
//...中略...
game.rootScene.addChild(player);
var enemy = new Sprite(32, 32);
                                            敵の初期化と表示
enemy.image = game.assets[‘chara2.gif’];
enemy.x = 320 - 32;
enemy.y = (320 - 32) * Math.random();
game.rootScene.addChild(enemy);
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
4.敵を出す
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’);
//...中略...
game.rootScene.addChild(player);
var enemy = new Sprite(32, 32);
                                            敵の初期化と表示
enemy.image = game.assets[‘chara2.gif’];
enemy.x = 320 - 32;
enemy.y = (320 - 32) * Math.random();
game.rootScene.addChild(enemy);
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...                 var player=new Sprite(32, 32);
                          player.image=game.assets[‘chara1.gif];
                          game.rootScene.addChild(player);
4.敵を出す
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’);
//...中略...
game.rootScene.addChild(player);
var enemy = new Sprite(32, 32);
enemy.image = game.assets[‘chara2.gif’];
enemy.x = 320 - 32;                         敵の位置の設定
enemy.y = (320 - 32) * Math.random()
game.rootScene.addChild(enemy);
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
5.敵を動かす
 1. main.jsを以下のように書き換える

main.js
//...中略...
enemy.x = 320 - 32;
game.rootScene.addChild(enemy);
enemy.addEventListener(‘enterframe’, function(){
  this.x -= 2;
});
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
5.敵を動かす
2. ブラウザのキャッシュを消す
5.敵を動かす
3. ブラウザをリロード
5.敵を動かす
3. ブラウザをリロード
5.敵を動かす
main.js

//...中略...
enemy.x = 320 - 32;
game.rootScene.addChild(enemy);
enemy.addEventListener(‘enterframe’, function(){
  this.x -= 2;
});                                 敵の毎フレームの
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...                              処理の設定
5.敵を動かす
main.js

//...中略...
enemy.x = 320 - 32;
game.rootScene.addChild(enemy);
enemy.addEventListener(‘enterframe’, function(){
  this.x -= 2;
});                                    自分の位置を
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...                            左に2px動かす
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
6.弾を撃つ
  1.   icon0.gifをフォルダに追加

  2.   main.jsを以下のように書き換える
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’, ‘icon0.gif’);
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
  player.y = e.y;
  var missile = new Sprite(16, 16);
  missile.image = game.assets[‘icon0.gif’];
  missile.frame = 54;
  missile.x = player.x;
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
     this.x += 2;
  });
  game.rootScene.addChild(missile);
});
//...中略...
6.弾を撃つ
3. ブラウザのキャッシュを消す
6.弾を撃つ
4. ブラウザをリロード
6.弾を撃つ
                                     弾画像の読み込み
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’, ‘icon0.gif’);
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
  player.y = e.y;
  var missile=new Sprite(16, 16);
  missile.image = game.assets[‘icon0.gif’];
  missile.frame = 54;
  missile.x = player.x;
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
  });
  game.rootScene.addChild(missile);
});
//...中略...
6.弾を撃つ
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’, ‘icon0.gif’);
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
  player.y = e.y;
  var missile=new Sprite(16, 16);
  missile.image = game.assets[‘icon0.gif’];
  missile.frame = 54;
  missile.x = player.x;
  missile.y = player.y;
                                                   弾の初期化
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
  });
  game.rootScene.addChild(missile);
});
//...中略...
6.弾を撃つ
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’, ‘icon0.gif’);
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
  player.y = e.y;
  var missile=new Sprite(16, 16);
  missile.image = game.assets[‘icon0.gif’];
  missile.frame = 54;
  missile.x = player.x;                      弾の画像の選択
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
  });
  game.rootScene.addChild(missile);
});
//...中略...
6.弾を撃つ
icon0.gif
6.弾を撃つ
 icon0.gif
 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70
6.弾を撃つ
 icon0.gif
 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
48 49 50 51 52 53      55 56 57 58 59 60 61 62 63
64 65 66 67 68 69 70
6.弾を撃つ
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’, ‘icon0.gif’);
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
  player.y = e.y;
  var missile=new Sprite(16, 16);
  missile.image = game.assets[‘icon0.gif’];
  missile.frame = 54;
  missile.x = player.x;                          playerの位置に
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;                                         弾を移動
  });
  game.rootScene.addChild(missile);
});
//...中略...
6.弾を撃つ
main.js
//...中略...
game.preload(‘chara1.gif’, ‘chara2.gif’, ‘icon0.gif’);
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
  player.y = e.y;
  var missile=new Sprite(16, 16);
  missile.image = game.assets[‘icon0.gif’];
  missile.frame = 54;
  missile.x = player.x;
                                                     弾の移動
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
  });
  game.rootScene.addChild(missile);
});
//...中略...
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
7.弾で敵を倒す
 1. main.jsを以下のように書き換える
main.js
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
    if(enemy.intersect(this)){
      game.rootScene.removeChild(enemy);
      game.rootScene.removeChild(this);
    }
  });
  game.rootScene.addChild(missile);
});
//...中略...
7.弾で敵を倒す
2. ブラウザのキャッシュを消す
7.弾で敵を倒す
3. ブラウザをリロード
7.弾で敵を倒す
main.js
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
    if(enemy.intersect(this)){
      game.rootScene.removeChild(enemy);
      game.rootScene.removeChild(this);
                                          敵と弾のあたり
    }
  });                                             判定
  game.rootScene.addChild(missile);
});
//...中略...
3.自機を動かす
    Entity.intersect(s);
Entityの矩形が交差しているかどうかにより判定衝突
を行う。引数には対象のEntitiyをとる。このメソッド
はEntityクラスにて定義さているので、Spriteで利用可
能
7.弾で敵を倒す
main.js
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
    if(enemy.intersect(this)){
      game.rootScene.removeChild(enemy);
      game.rootScene.removeChild(this);
                                               敵と弾を消す
    }
  });
  game.rootScene.addChild(missile);
});
//...中略...
3.自機を動かす
 Group.removeChild(s);
GroupからNodeを削除する。引数には対象のEntitiyを
とる。このメソッドはGroupクラスにて定義さている
ので、Sceneで利用可能
7.弾で敵を倒す
 1. main.jsを以下のように書き換える
main.js
//...中略...
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
  missile.y = player.y;
  missile.addEventListener(‘enterframe’, function(){
    this.x += 2;
    if(enemy.intersect(this)){
      game.rootScene.removeChild(enemy);
      game.rootScene.removeChild(this);
    }
  });
  game.rootScene.addChild(missile);
});
//...中略...
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
8.敵をたくさん出す
 1. main.jsを以下のように書き換える
main.js
//...中略...
game.rootScene.addChild(player);
var enemies = [];
game.rootScene.addEventListener(‘enterframe’, function(){
  if(Math.random() < 0.1){
    var enemy = new Sprite(32, 32);
    //...中略...
      this.x -= 2;
    });
    enemies.push(enemy);
  }
});
//...中略...
8.敵をたくさん出す
 2. main.jsをまだまだ書き換える
main.js
//...中略...
missile.addEventListener(‘enterframe’, function(){
  this.x += 2;
  for(var i = 0; i < enemies.length; i++){
    if(enemies[i].intersect(this)){
      game.rootScene.removeChild(enemies[i]);
      game.rootScene.removeChild(this);
      enemies.splice(i, 1);
      break;
    }
  }
});
//...中略...
8.敵をたくさん出す
3. ブラウザのキャッシュを消す
8.敵をたくさん出す
4. ブラウザをリロード
8.敵をたくさん出す
main.js
//...中略...
game.rootScene.addChild(player);
var enemies = [];
                                    敵配列の用意
game.rootScene.addEventListener(‘enterframe’, function(){
  if(Math.random() < 0.1){
    var enemy = new Sprite(32, 32);
    //...中略...
      this.x -= 2;
    });
    enemies.push(enemy);
  }
});
//...中略...
8.敵をたくさん出す
main.js
//...中略...
game.rootScene.addChild(player);
var enemies = [];
game.rootScene.addEventListener(‘enterframe’, function(){
  if(Math.random() < 0.1){
    var enemy = new Sprite(32, 32);
    //...中略...
      this.x -= 2;                  毎フレームごとの
    });
    enemies.push(enemy);
  }                                     処理を追加
});
//...中略...
8.敵をたくさん出す
main.js
//...中略...
game.rootScene.addChild(player);
var enemies = [];
game.rootScene.addEventListener(‘enterframe’, function(){
  if(Math.random() < 0.1){
    var enemy = new Sprite(32, 32);
    //...中略...                       毎フレームだと
      this.x -= 2;
    });
    enemies.push(enemy);
                                     多すぎるので、
  }
});
//...中略...
                                   1/10の確率で出現
8.敵をたくさん出す
main.js
//...中略...
game.rootScene.addChild(player);
var enemies = [];
game.rootScene.addEventListener(‘enterframe’, function(){
  if(Math.random() < 0.1){
    var enemy = new Sprite(32, 32);
    //...中略...
      this.x -= 2;                    表示されてる
    });
    enemies.push(enemy);
  }                                  敵リストに追加
});
//...中略...
8.敵をたくさん出す
main.js
//...中略...
missile.addEventListener(‘enterframe’, function(){
  this.x += 2;
  for(var i = 0; i < enemies.length; i++){
    if(enemies[i].intersect(this)){
      game.rootScene.removeChild(enemies[i]);
      game.rootScene.removeChild(this);
      enemies.splice(i, 1);             敵の数だけループ
      break;
    }
  }
});
//...中略...
8.敵をたくさん出す
main.js
//...中略...
missile.addEventListener(‘enterframe’, function(){
  this.x += 2;
  for(var i = 0; i < enemies.length; i++){
    if(enemies[i].intersect(this)){
      game.rootScene.removeChild(enemies[i]);
      game.rootScene.removeChild(this);
      enemies.splice(i, 1);

    }
      break;
                                     i番目の敵と
  }
});
//...中略...
                              ミサイルの当たり判定
8.敵をたくさん出す
main.js
//...中略...
missile.addEventListener(‘enterframe’, function(){
  this.x += 2;
  for(var i = 0; i < enemies.length; i++){
    if(enemies[i].intersect(this)){
      game.rootScene.removeChild(enemies[i]);
      game.rootScene.removeChild(this);
      enemies.splice(i, 1);

    }
      break;
                                     i番目の敵を
  }
});
//...中略...
                                 敵リストから削除
8.敵をたくさん出す
main.js
//...中略...
missile.addEventListener(‘enterframe’, function(){
  this.x += 2;
  for(var i = 0; i < enemies.length; i++){
    if(enemies[i].intersect(this)){
      game.rootScene.removeChild(enemies[i]);
      game.rootScene.removeChild(this);
      enemies.splice(i, 1);
      break;
    }
  }
});
                      ループの中断
//...中略...
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
9.ゲームオーバーを作る
 1. main.jsを以下のように書き換える
main.js
//...中略...
enemy.addEventListener(‘enterframe’, function(){
  this.x -= 2;
  if(player.intersect(this)){
    game.stop();
    var label = new Label(‘GAME OVER’);
    label.font = ‘32px sans-serif’;
    label.x = 50;
    label.y = 150;
    game.rootScene.addChild(label);
  }
});
//...中略...
9.ゲームオーバーを作る
9.ゲームオーバーを作る
9.ゲームオーバーを作る
main.js
//...中略...
enemy.addEventListener(‘enterframe’, function(){
  this.x -= 2;
  if(player.intersect(this)){
    game.stop();
    var label = new Label(‘GAME OVER’);
    label.font = ‘32px sans-serif’;      敵とPlayerの
    label.x = 50;
    label.y = 150;
    game.rootScene.addChild(label);       当たり判定
  }
});
//...中略...
9.ゲームオーバーを作る
main.js
//...中略...
enemy.addEventListener(‘enterframe’, function(){
  this.x -= 2;
  if(player.intersect(this)){
    game.stop();
    var label = new Label(‘GAME OVER’);
    label.font = ‘32px sans-serif’;
    label.x = 50;
                                        ゲームの停止
    label.y = 150;
    game.rootScene.addChild(label);
  }
});
//...中略...
9.ゲームオーバーを作る
main.js
//...中略...
enemy.addEventListener(‘enterframe’, function(){
  this.x -= 2;
  if(player.intersect(this)){
    game.stop();
    var label = new Label(‘GAME OVER’);
    label.font = ‘32px sans-serif’;         GAMEOVER
    label.x = 50;
    label.y = 150;                            の表示
    game.rootScene.addChild(label);
  }
});
//...中略...
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
10.スコアを出す
 1. main.jsを以下のように書き換える
main.js
//...中略...
    enemies.push(enemy);
  }
});
var label = new Label(“SCORE:0”);
game.rootScene.addChild(label);
var score = 0;
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
         enemies.splice(i, 1);
         score++;
         label.text = “SCORE:” + score;
         break;
//...中略...
10.スコアを出す
10.スコアを出す
main.js
//...中略...
    enemies.push(enemy);
  }                                       ラベルの表示
});
var label = new Label(“SCORE:0”);
game.rootScene.addChild(label);
var score = 0;
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
         enemies.splice(i, 1);
         score++;
         label.text = “SCORE:” + score;
         break;
//...中略...
10.スコアを出す
main.js
//...中略...
    enemies.push(enemy);
  }
});
var label = new Label(“SCORE:0”);
game.rootScene.addChild(label);    スコアの初期化
var score = 0;
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
         enemies.splice(i, 1);
         score++;
         label.text = “SCORE:” + score;
         break;
//...中略...
10.スコアを出す
main.js
//...中略...
    enemies.push(enemy);
  }
});
var label = new Label(“SCORE:0”);
game.rootScene.addChild(label);
var score = 0;
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
         enemies.splice(i, 1);
         score++;
                                       スコアの増加
         label.text = “SCORE:” + score;
         break;
//...中略...
10.スコアを出す
main.js
//...中略...
    enemies.push(enemy);
  }
});
var label = new Label(“SCORE:0”);
game.rootScene.addChild(label);
var score = 0;
game.rootScene.addEventListener(‘touchstart’, function(e){
//...中略...
         enemies.splice(i, 1);
         score++;
                                              表示の更新
         label.text = “SCORE:” + score;
         break;
//...中略...
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ

       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
あなたがシューティングゲームを
         作るのに必要なたった10個の要素                625 users



       1. enchant.js初期化      6. 弾を撃つ




                       済
       2. 自機を出す              7. 弾で敵を倒す

       3. 自機を動かす             8. 敵をたくさん出す

       4. 敵を出す               9. ゲームオーバーを作る

       5. 敵を動かす              10.スコアを出す
http://chephes.com/meetup/
1   enchant();
 2   window.onload=function(){
 3     var game=new Game(320, 320);
 4     game.preload('chara1.gif', 'chara2.gif','icon0.gif');
 5     game.onload=function(){
 6     ! var player=new Sprite(32,32);
 7     ! player.image=game.assets['chara1.gif'];
 8     ! game.rootScene.addChild(player);
 9     ! var enemies = [];
10     ! game.rootScene.addEventListener('enterframe', function(){
11     ! !    if(Math.random() < 0.1){
12   !    !     ! var enemy=new Sprite(32, 32);
13   !    !     ! enemy.image=game.assets['chara2.gif'];
14   !    !     ! enemy.x = 320 - 32;
15   !    !     ! enemy.y = (320 - 32) * Math.random();
16   !    !     ! game.rootScene.addChild(enemy);
17   !    !     ! enemy.addEventListener('enterframe', function(){
18   !    !     ! !    this.x -= 2;
19   !    !     ! !    if(player.intersect(this)){
20   !    !     ! !    !    game.stop();
21   !    !     ! !    !    var label = new Label('GAME OVER');
22   !    !   !    !   !    label.font = '32px sans-serif';
23   !    !   !    !   !    label.x = 50;
24   !    !   !    !   !    label.y = 150;
25   !    !   !    !   !    game.rootScene.addChild(label);
26   !    !     ! !    }
27   !    !     ! });
28   !    !     ! enemies.push(enemy);
29     ! !    }
30     ! });
31       !   var label = new Label("SCORE:0");
32       !   game.rootScene.addChild(label);
33       !   var score = 0;
34       !   game.rootScene.addEventListener('touchstart', function(e){
35       !   !    player.y=e.y;
36       !   !    var missile=new Sprite(16,16);
37       !   !    missile.image=game.assets['icon0.gif'];
38       !   !    missile.frame=54;
39       !   !    missile.x=player.x;
40       !   !    missile.y=player.y;
41       !   !    missile.addEventListener('enterframe',function(){
42       !   !    !    this.x += 2;
43       !   !    !    for(var i = 0; i < enemies.length; i++){
44   !         ! !     !    if(enemies[i].intersect(this)){
45   !         ! !     !    !    game.rootScene.removeChild(enemies[i]);
46   !         ! !     !    !    game.rootScene.removeChild(this);
47   !         ! !     !    !    enemies.splice(i, 1);
48   !         ! !     !    !    score++;
49   !         ! !     !    !    label.text = "SCORE:" + score;
50   !         ! !     !    !    break;
51   !         ! !     !    }
52     !     !    !    }
53     !     !    });
54     !     !    game.rootScene.addChild(missile);
55     !     });
56      };
57      game.start();
58   };
発展
アイテムなどを作ってみる

敵キャラのバリエーションを増やす

ステージを作ってみる

敵をクラス化してみる

弾をクラス化してみる
enchant.js meetup Tokyo vol.2 Tutorial

Más contenido relacionado

La actualidad más candente

ႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲ
koluzoe
 
Snehapoorvam Amma
Snehapoorvam AmmaSnehapoorvam Amma
Snehapoorvam Amma
rvkara
 
ေၾကာက္တယ္
ေၾကာက္တယ္ေၾကာက္တယ္
ေၾကာက္တယ္
babycandy007
 
ဘူးသီးဇာတ္လမ္း
ဘူးသီးဇာတ္လမ္းဘူးသီးဇာတ္လမ္း
ဘူးသီးဇာတ္လမ္း
babycandy007
 
μπ ντ-γκ-γγ-τσ-τζ
μπ ντ-γκ-γγ-τσ-τζμπ ντ-γκ-γγ-τσ-τζ
μπ ντ-γκ-γγ-τσ-τζ
thalianikaki
 
κεφ. 25 γραφω διψήφιους αριθμούς
κεφ. 25 γραφω διψήφιους αριθμούςκεφ. 25 γραφω διψήφιους αριθμούς
κεφ. 25 γραφω διψήφιους αριθμούς
Ioanna Chats
 

La actualidad más candente (20)

Παιχνίδια για να χαρούμε στο πάρτι της Αποκριάς.pdf
Παιχνίδια για να χαρούμε στο πάρτι της Αποκριάς.pdfΠαιχνίδια για να χαρούμε στο πάρτι της Αποκριάς.pdf
Παιχνίδια για να χαρούμε στο πάρτι της Αποκριάς.pdf
 
ႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲႀကပ္ေနရင္ အပ်ိဳပဲ
ႀကပ္ေနရင္ အပ်ိဳပဲ
 
災害時における中間支援組織の12の役割
災害時における中間支援組織の12の役割災害時における中間支援組織の12の役割
災害時における中間支援組織の12の役割
 
Snehapoorvam Amma
Snehapoorvam AmmaSnehapoorvam Amma
Snehapoorvam Amma
 
利用影像匹配進行物件辨識與對位
利用影像匹配進行物件辨識與對位利用影像匹配進行物件辨識與對位
利用影像匹配進行物件辨識與對位
 
Making a Game Design Document
Making a Game Design DocumentMaking a Game Design Document
Making a Game Design Document
 
Hazrat Syeda Sauda R.A.
Hazrat Syeda Sauda R.A.Hazrat Syeda Sauda R.A.
Hazrat Syeda Sauda R.A.
 
Anna bhaaryato
Anna bhaaryatoAnna bhaaryato
Anna bhaaryato
 
τασος το σαλιγκάρι 2
τασος το σαλιγκάρι 2τασος το σαλιγκάρι 2
τασος το σαλιγκάρι 2
 
Revenue guide 2022 - Summary from James adhikaram your land consultant 944746...
Revenue guide 2022 - Summary from James adhikaram your land consultant 944746...Revenue guide 2022 - Summary from James adhikaram your land consultant 944746...
Revenue guide 2022 - Summary from James adhikaram your land consultant 944746...
 
επαναληψη ως το κκ
επαναληψη ως το κκεπαναληψη ως το κκ
επαναληψη ως το κκ
 
ေၾကာက္တယ္
ေၾကာက္တယ္ေၾကာက္တယ္
ေၾကာက္တယ္
 
ဘူးသီးဇာတ္လမ္း
ဘူးသီးဇာတ္လမ္းဘူးသီးဇာတ္လမ္း
ဘူးသီးဇာတ္လမ္း
 
Βόλτα στο βουνό / Φύλλα εργασίας και εκπαιδευτικό υλικό για την α΄ δημοτικού...
Βόλτα στο βουνό  / Φύλλα εργασίας και εκπαιδευτικό υλικό για την α΄ δημοτικού...Βόλτα στο βουνό  / Φύλλα εργασίας και εκπαιδευτικό υλικό για την α΄ δημοτικού...
Βόλτα στο βουνό / Φύλλα εργασίας και εκπαιδευτικό υλικό για την α΄ δημοτικού...
 
μπ ντ-γκ-γγ-τσ-τζ
μπ ντ-γκ-γγ-τσ-τζμπ ντ-γκ-γγ-τσ-τζ
μπ ντ-γκ-γγ-τσ-τζ
 
Unreal animation system
Unreal animation systemUnreal animation system
Unreal animation system
 
Kunchan nambiar powerpoint
Kunchan nambiar powerpointKunchan nambiar powerpoint
Kunchan nambiar powerpoint
 
''Kαλημέρα στις γειτονιές του κόσμου'' Φυλλα Εργασίας
''Kαλημέρα στις γειτονιές του κόσμου'' Φυλλα Εργασίας''Kαλημέρα στις γειτονιές του κόσμου'' Φυλλα Εργασίας
''Kαλημέρα στις γειτονιές του κόσμου'' Φυλλα Εργασίας
 
Ένα ποίημα για τα φωνήεντα Της Σάσας Καραγιαννίδου - Πέννα
Ένα ποίημα για τα φωνήεντα Της Σάσας Καραγιαννίδου - ΠένναΈνα ποίημα για τα φωνήεντα Της Σάσας Καραγιαννίδου - Πέννα
Ένα ποίημα για τα φωνήεντα Της Σάσας Καραγιαννίδου - Πέννα
 
κεφ. 25 γραφω διψήφιους αριθμούς
κεφ. 25 γραφω διψήφιους αριθμούςκεφ. 25 γραφω διψήφιους αριθμούς
κεφ. 25 γραφω διψήφιους αριθμούς
 

Destacado

Annie Savant
Annie Savant Annie Savant
Annie Savant
adubose
 
Código das equipes atualizado
Código das equipes atualizadoCódigo das equipes atualizado
Código das equipes atualizado
Major Ribamar
 
Shelby Cooper
Shelby CooperShelby Cooper
Shelby Cooper
adubose
 
脉轮能量书ⅰ
脉轮能量书ⅰ脉轮能量书ⅰ
脉轮能量书ⅰ
guxianbang
 
Callie Hodge
Callie HodgeCallie Hodge
Callie Hodge
adubose
 
Briasha King
Briasha KingBriasha King
Briasha King
adubose
 
Connor Lofton
Connor LoftonConnor Lofton
Connor Lofton
adubose
 
All analysis
All analysisAll analysis
All analysis
Amber_
 
Trabajo practico nº14
Trabajo practico nº14Trabajo practico nº14
Trabajo practico nº14
sscida
 
Media kit mdc asrl 2011
Media kit mdc asrl 2011Media kit mdc asrl 2011
Media kit mdc asrl 2011
andresobel
 

Destacado (20)

enchant.js meetup! ショートセッション「はじめてのenchant.js AtlasXでゲームをつくる」
enchant.js meetup! ショートセッション「はじめてのenchant.js AtlasXでゲームをつくる」enchant.js meetup! ショートセッション「はじめてのenchant.js AtlasXでゲームをつくる」
enchant.js meetup! ショートセッション「はじめてのenchant.js AtlasXでゲームをつくる」
 
Coffee Scriptでenchant.js
Coffee Scriptでenchant.jsCoffee Scriptでenchant.js
Coffee Scriptでenchant.js
 
17 семинар
17 семинар17 семинар
17 семинар
 
How to sell 3 million widgets, guaranteed!
How to sell 3 million widgets, guaranteed!How to sell 3 million widgets, guaranteed!
How to sell 3 million widgets, guaranteed!
 
Be green, be accessible
Be green, be accessibleBe green, be accessible
Be green, be accessible
 
Derivatives in graphing-dfs
Derivatives in graphing-dfsDerivatives in graphing-dfs
Derivatives in graphing-dfs
 
Annie Savant
Annie Savant Annie Savant
Annie Savant
 
Código das equipes atualizado
Código das equipes atualizadoCódigo das equipes atualizado
Código das equipes atualizado
 
Shelby Cooper
Shelby CooperShelby Cooper
Shelby Cooper
 
脉轮能量书ⅰ
脉轮能量书ⅰ脉轮能量书ⅰ
脉轮能量书ⅰ
 
Callie Hodge
Callie HodgeCallie Hodge
Callie Hodge
 
Сравнение SEO с интернет маркетингом
Сравнение SEO с интернет маркетингомСравнение SEO с интернет маркетингом
Сравнение SEO с интернет маркетингом
 
Sine and Cosine Curves- Dr. Farhana Shaheen
Sine and Cosine Curves- Dr. Farhana ShaheenSine and Cosine Curves- Dr. Farhana Shaheen
Sine and Cosine Curves- Dr. Farhana Shaheen
 
Briasha King
Briasha KingBriasha King
Briasha King
 
Connor Lofton
Connor LoftonConnor Lofton
Connor Lofton
 
IxDA Edu Summit 2015 - Pontus Warnestal
IxDA Edu Summit 2015 - Pontus WarnestalIxDA Edu Summit 2015 - Pontus Warnestal
IxDA Edu Summit 2015 - Pontus Warnestal
 
Sin título 1
Sin título 1Sin título 1
Sin título 1
 
All analysis
All analysisAll analysis
All analysis
 
Trabajo practico nº14
Trabajo practico nº14Trabajo practico nº14
Trabajo practico nº14
 
Media kit mdc asrl 2011
Media kit mdc asrl 2011Media kit mdc asrl 2011
Media kit mdc asrl 2011
 

Similar a enchant.js meetup Tokyo vol.2 Tutorial

2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
Hiroshi Oyamada
 
enchant.jsでゲーム制作をはじめてみよう
enchant.jsでゲーム制作をはじめてみようenchant.jsでゲーム制作をはじめてみよう
enchant.jsでゲーム制作をはじめてみよう
Ryota Shiroguchi
 
Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceupHtml canvas shooting_and_performanceup
Html canvas shooting_and_performanceup
Yohei Munesada
 
Canvas de shooting 制作のポイント
Canvas de shooting 制作のポイントCanvas de shooting 制作のポイント
Canvas de shooting 制作のポイント
Yohei Munesada
 
GameSalad9.13発表用資料
GameSalad9.13発表用資料GameSalad9.13発表用資料
GameSalad9.13発表用資料
Tomotaka Inagaki
 

Similar a enchant.js meetup Tokyo vol.2 Tutorial (20)

2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d2012 03-03-titanium plusquicktigame2d
2012 03-03-titanium plusquicktigame2d
 
Osakijs #01 「enchant.jsハンズオン資料」
Osakijs #01 「enchant.jsハンズオン資料」Osakijs #01 「enchant.jsハンズオン資料」
Osakijs #01 「enchant.jsハンズオン資料」
 
Aiwolf seminar 2019_ja
Aiwolf seminar 2019_jaAiwolf seminar 2019_ja
Aiwolf seminar 2019_ja
 
Creators'night#14今井
Creators'night#14今井Creators'night#14今井
Creators'night#14今井
 
㉔cocos2dでゲームを作ろう!その2
㉔cocos2dでゲームを作ろう!その2㉔cocos2dでゲームを作ろう!その2
㉔cocos2dでゲームを作ろう!その2
 
人狼知能セミナー資料案20170624
人狼知能セミナー資料案20170624人狼知能セミナー資料案20170624
人狼知能セミナー資料案20170624
 
enchant.jsでゲーム制作をはじめてみよう
enchant.jsでゲーム制作をはじめてみようenchant.jsでゲーム制作をはじめてみよう
enchant.jsでゲーム制作をはじめてみよう
 
㉖cocos2dを覚えよう!
㉖cocos2dを覚えよう!㉖cocos2dを覚えよう!
㉖cocos2dを覚えよう!
 
enchant.js勉強会
enchant.js勉強会enchant.js勉強会
enchant.js勉強会
 
Html canvas shooting_and_performanceup
Html canvas shooting_and_performanceupHtml canvas shooting_and_performanceup
Html canvas shooting_and_performanceup
 
Aiwolfseminar2020
Aiwolfseminar2020Aiwolfseminar2020
Aiwolfseminar2020
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜
 
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
 
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作るGoCon 2015 Summer GoのASTをいじくって新しいツールを作る
GoCon 2015 Summer GoのASTをいじくって新しいツールを作る
 
Creators'night#12今井
Creators'night#12今井Creators'night#12今井
Creators'night#12今井
 
Canvas de shooting 制作のポイント
Canvas de shooting 制作のポイントCanvas de shooting 制作のポイント
Canvas de shooting 制作のポイント
 
㉓cocos2dでゲームを作ろう!その1
㉓cocos2dでゲームを作ろう!その1㉓cocos2dでゲームを作ろう!その1
㉓cocos2dでゲームを作ろう!その1
 
GameSalad9.13発表用資料
GameSalad9.13発表用資料GameSalad9.13発表用資料
GameSalad9.13発表用資料
 
Arctic.js
Arctic.jsArctic.js
Arctic.js
 

Más de Ryo Shimizu (7)

Chaienr meetup#2 UEI Deep Station ; A GUI for Deep learning
Chaienr meetup#2 UEI Deep Station ; A GUI for Deep learningChaienr meetup#2 UEI Deep Station ; A GUI for Deep learning
Chaienr meetup#2 UEI Deep Station ; A GUI for Deep learning
 
Introduction to DEEPstation the GUI Deep learning environment for chainer
Introduction to DEEPstation the GUI Deep learning environment for chainerIntroduction to DEEPstation the GUI Deep learning environment for chainer
Introduction to DEEPstation the GUI Deep learning environment for chainer
 
enchantMOON presentation @ Mobile IT Asia & ABC 2013 Spring
enchantMOON presentation @ Mobile IT Asia & ABC 2013 SpringenchantMOON presentation @ Mobile IT Asia & ABC 2013 Spring
enchantMOON presentation @ Mobile IT Asia & ABC 2013 Spring
 
enchant js workshop on Calpoly
enchant js workshop  on Calpolyenchant js workshop  on Calpoly
enchant js workshop on Calpoly
 
Beginning gl.enchant
Beginning gl.enchantBeginning gl.enchant
Beginning gl.enchant
 
enchant.js meetup Tokyo vol.2 Roadmap of enchant.js
enchant.js meetup Tokyo vol.2 Roadmap of enchant.jsenchant.js meetup Tokyo vol.2 Roadmap of enchant.js
enchant.js meetup Tokyo vol.2 Roadmap of enchant.js
 
9leap Game Programming Camp @Tokyo
9leap Game Programming Camp @Tokyo9leap Game Programming Camp @Tokyo
9leap Game Programming Camp @Tokyo
 

Último

Último (7)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

enchant.js meetup Tokyo vol.2 Tutorial