enchant.jsのSpriteを回転させます。
ドロイド君が10体のペアで画面を回転しながら斜めに移動し続けます。
まずは表示用のHTML。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Sample</title>
<style>
body { margin: 0; }
</style>
<script src="../js/enchant.min.js"></script>
<script src="main.js"></script>
</head>
<body>
</body>
</html>
enchant.jsの読み込みはそれぞれのフォルダー形式に合わせてください。
実際の処理部分。
enchant() ; // ライブラリの初期化
window.onload = function()
{
var x1 = 1 ;
var y1 = -1 ;
var x2 = 1 ;
var y2 = -1 ;
//使用する画像のファイル名
var pic_name = "../img/droid.png" ;
//320×240ピクセルサイズの画面(Canvas)を作成する
var game = new Game( 320, 240 ) ;
//フレームレートの設定する
game.fps = 70 ;
//画像データをあらかじめ読み込ませる
game.preload( pic_name ) ;
//データの読み込みが完了したら処理
game.onload = function(){
//1つ目の集団を作る
var droid = new Array() ;
var i ;
for( i = 0 ; i < 20 ; i++ ){
//Spriteを作成する
droid[ i ] = new Sprite( 32, 32 ) ;
droid[ i ].image = game.assets[ pic_name ] ;
if( i < 10 ){ //最初の集団
droid[ i ].x = 20 + ( i * 10 ) ;
droid[ i ].y = game.height - droid[ i ].height - ( i * 2 );
}
else{ //次のの集団
droid[ i ].x = 20 + ( i * 10 ) ;
droid[ i ].y = droid[ i ].height + ( i * 2 ) ;
}
droid[ i ].scale( 0.5, 0.5 ) ; //画像ちょっと縮小
droid[ i ].x1 = 1 ;
droid[ i ].y1 = -1 ;
droid[ i ].counter = 0 ;
game.rootScene.addChild( droid[ i ] ) ;
// フレームイベントが発生したら処理
droid[ i ].addEventListener( Event.ENTER_FRAME, function(){
if( this.counter % 2 === 0) {
// ドロイド君斜めに移動してみる
if( this.y <= 0 || this.y > game.height - this.height ){
this.y1 *= -1 ;
}
if( this.x <= 0 || this.x > game.width - this.width ){
this.x1 *= -1 ;
}
this.y = this.y + this.y1 ;
this.x = this.x + this.x1 ;
}
else{
// ドロイド君回転
this.rotate( 8 ) ;
}
this.counter++ ;
});
}
}
game.start() ; // ゲーム処理開始
}
なぜかわかりませんが「移動して回転」と同時にできなかったので、
「移動」と「回転」を1フレームごとに繰り返します。
ドロイド君が軍団で回転しながら移動します。
実際の動作はここをクリック。
