Monacaでenchan.jsのSpriteを使ってみる

Monacaでenchan.jsのSpriteを使って、くまのピンボールを作ってみた。

公式チュートリアルを参考に、シーンの追加、Spriteの定期処理を学んだ
Let’s start enchant.js | enchant.js - A simple JavaScript framework for creating games and apps.

コードは以下のとおり

// This is a JavaScript file
enchant();
window.onload = function(){
    var game = new Game(320, 320);
    game.fps = 16;
    
    game.preload('img/animal/space3.png');
    game.onload = function(){
        var bear = new Sprite(32, 32);
        bear.image = game.assets['img/animal/space3.png'];
        bear.tick = 0;
        bear.anim = [5, 6, 5, 7];
        
        //くまの動き量
        var xShift = 5;
        var yShift = 3;
        
        bear.addEventListener('enterframe', function(){
           bear.tick++;
           bear.frame = bear.anim[bear.tick % 4]; 
           bear.x += xShift;
           bear.y += yShift;
           
           //右端についたら
           if(bear.x > 320 - 32){
               xShift = -5;
               bear.scaleX = -1;
           }
           //左端についたら
           if(bear.x < 0) {
               xShift = 5;
               bear.scaleX = 1;
           }
          
          //下についたら
            if(bear.y > 320 - 32){
               yShift = -5;
           }
           //上についたら
           if(bear.y < 0) {
               yShift = 5;
           }
       
           
        });
        
        var bearScene = new Scene();
        game.pushScene(bearScene);
        bearScene.addChild(bear);
        //game.rootScene.addChild(bear);
     };
    game.start();
      
};

衝突判定を入れてみると以下のとおり。
本当は衝突したらしばらく止まるようにしたかったのだが、うまく行かなかったのでまた明日

// This is a JavaScript file
enchant();
window.onload = function(){
    var game = new Game(320, 320);
    game.fps = 16;
    
    game.preload('img/animal/space3.png');
    game.onload = function(){
        var bear = new Sprite(32, 32);
        var bear2 = new Sprite(32, 32);
        bear.image = game.assets['img/animal/space3.png'];
        bear2.image = game.assets['img/animal/space3.png'];
        bear.tick = 0;
        bear.anim = [5, 6, 5, 7];
        bear2.anim = [15, 16, 15, 17];
        
        //くまの初期位置
        bear.x = 0;
        bear.y = 0;
        bear2.x = 320 - 32;
        bear2.y = 0;
        
        //くまの初速
        var xShift1 = 5;
        var yShift1 = 3;
        var xShift2 = 4;
        var yShift2 = 7;
        
        //hitフラグ
        var hitFlag = false;
        
        bear.addEventListener('enterframe', function(){
           bear.tick++;
           bear.frame = bear.anim[bear.tick % 4]; 
           bear2.frame = bear2.anim[bear.tick % 4]; 
           
           bear.x += xShift1;
           bear.y += yShift1;
           bear2.x += xShift2;
           bear2.y += yShift2;
           
           //右端についたら
           if(bear.x > 320 - 32){
               xShift1 = -5;
               bear.scaleX = -1;
           }
           if(bear2.x > 320 - 32){
               xShift2 = -4;
               bear2.scaleX = -1;
           }
           //左端についたら
           if(bear.x < 0) {
               xShift1 = 5;
               bear.scaleX = 1;
           }
           if(bear2.x < 0) {
               xShift2 = 4;
               bear2.scaleX = 1;
           }
           
          //下についたら
            if(bear.y > 320 - 32){
               yShift1 = -3;
           }
            if(bear2.y > 320 - 32){
               yShift2 = -7;
           }
           //上についたら
           if(bear.y < 0) {
               yShift1 = 3;
           }
           if(bear2.y < 0) {
               yShift2 = 7;
           }
           
           //ぶつかった
           if(bear.within(bear2, 20)){
               hitFlag = true;
           }
           
           if(hitFlag){
               var xtmp1 = xShift1; var ytmp1 = yShift1; var scale1 = bear.scaleX
               var xtmp2 = yShift2; var ytmp2 = yShift2; var scale2 = bear2.scaleX
               var counter = 0;
               
               //最初の1秒
               while( counter != game.fps){    
                   bear.frame =
                   bear2.frame = 18;
                   xShift1 = 0; yShift1 = 0;
                   xShift2 = 0; yShift2 = 0;
                   console.log(counter);
                   counter++;
               }
               
                xShift1 = -xtmp1; yShift1 = -ytmp1; bear.scaleX = -scale1
                xShift2 = -xtmp2; yShift2 = -ytmp2; bear2.scaleX = -scale2
                hitFlag = false;
               
            }
           
        });
        
        var bearScene = new Scene();
        game.pushScene(bearScene);
        bearScene.addChild(bear);
        bearScene.addChild(bear2);
        //game.rootScene.addChild(bear);
     };
    game.start();
    
    
};