くるくる回るくま

ハンカチ落とし式席替えをするために、ぐるぐるまわるくまを作ってみた。
f:id:d-nami:20130717025638p:plain

enchant();

var SCREEN_WIDTH = 320;
var SCREEN_HEIGHT = 320;
var CHARA_IMAGE = "/Users/daichi/program/enchant/enchant.js-builds-0.7.0/images/chara1.png";
var SPRITE_MAX_NUM = 10;


//ランダムな数値を作成
var randint = function(min, max){
  return window.Math.floor(Math.random()*(max-min+1)) + min;
}



window.onload = function(){
  var game = new Game(SCREEN_WIDTH, SCREEN_HEIGHT);
  game.preload(CHARA_IMAGE);

  game.onload = function(){
    var scene = game.rootScene;
    scene.backgroundColor = "black";

    //Group作成
    var bearGroup = new Group();
    //Groupの中心座標指定
    bearGroup.moveTo( (SCREEN_WIDTH-32)/2, (SCREEN_HEIGHT-32)/2 );

    for(var index=0; index<SPRITE_MAX_NUM; ++index){
      var bear = new Sprite(32, 32);
      bear.image = game.assets[CHARA_IMAGE];
      bear.frame = 1;

      //くまの初期位置指定
      bear.rad = Math.PI*2/SPRITE_MAX_NUM * index;
      var x = Math.cos(bear.rad)*100;
      var y = Math.sin(bear.rad)*100;
      bear.moveTo(x ,y);

      //くまの移動量
      var drad = Math.PI*2/SPRITE_MAX_NUM/100;
      bear.tick = 0;
      /*
       *       bear.onenterframe = function(){
       *           bear.tick++;
       * 
       *            this.x = Math.cos( this.rad+(drad*bear.tick) )*100;
       *            this.y = Math.sin( this.rad+(drad*bear.tick) )*100;
       *       };
       */
      bear.addEventListener('enterframe', function(){
        bear.tick++;
        //ぐるぐるまわる
        this.x = Math.cos( this.rad+ (drad*bear.tick) )*100;
        this.y = Math.sin( this.rad+ (drad*bear.tick) )*100;
      });
      //くまをグループに追加
      bearGroup.addChild(bear);
      // scene.addChild(bear);
    }

    scene.addChild(bearGroup);
  };


  game.start();

};

イベントリスナーのところで若干ハマった。
javascriptにおけるthisを勉強しないとなー