Atlas.jsブログ

Webブラウザで動作する、教育用JavaScriptゲームエンジン、Atlas.jsに関する知識共有ブログです。

Atlas.jsの隠れ機能紹介isQueEmpty


こんにちは。今回はAtlas.jsの隠れ機能、isQueEmptyについて紹介したいと思います。
かなり使える機能だと思うのでみなさん是非使ってみてください。

Queとは

あなたはレジの店員だと思ってください。
この場合、レジに並ぶお客さんを1つの仕事だと見なすことができます。
そして、目の前のお客さんのレジを終了すると、次に並んできたお客さんが現れて、またレジをしなければいけません。
つまり、予約されている仕事を次々と対処していくのがキューだと思ってください。

isQueEmptyとは

現在スプライトに対して、moveBy ScaleBy animate rotateByなどのアニメーションが予約されているかを取得するメソッドです。
予約されているならtrueされていなければfalseを返します。

それで、なにができるの?

ではこの機能がナニがうれしいのでしょう。
つまり、アニメーションが終わってないスプライトには
〜の処理をしないなどのルールをスプライトに付加できるのです。
RPGなどで、十字キーで動かしたスプライトは一回その方向に移動しきらなければ、
十字キーで再度方向を入力しても動かないはずです。
そういうイメージです。
下のコードと、実行結果をみてみれば、僕の言いたいことがわかるはずです。
実行結果
http://atlas-editor.ap01.aws.af.cm/user/steelydylan/538e56e08997a4664d000027

Atlas();
window.onload = function(){
	var game = new App();
  	game.load(["http://res.cloudinary.com/dx1fyzpwl/image/upload/v1401836944/bw89mebzebv1gszjbxfx.png","sprite"]);
	game.setQuality(500,500);
	game.setSize(500,500);
	game.centerize();
	game.setColor("black");
	var sprite = new Sprite("sprite",32,32);
  sprite.keyDown = function(key){
    if(this.isQueEmpty()){
    	if(key.right){
      		this.moveBy(100,0,30).and().animate([6,7,8],5);
        }else if(key.left){
          	this.moveBy(-100,0,30).and().animate([3,4,5],5);
        }else if(key.up){
          	this.moveBy(0,-100,30).and().animate([9,10,11],5);
        }else if(key.down){
          	this.moveBy(0,100,30).and().animate([0,1,2],5);
        }
    }
  }
  sprite.setPosition(100,100);
	game.addChild(sprite);
	game.start();
};


blog comments powered by Disqus

エントリーリスト

カテゴリーリスト

Facebook

Twitter

おすすめの本