くるくる回るくま
ハンカチ落とし式席替えをするために、ぐるぐるまわるくまを作ってみた。
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を勉強しないとなー