AndEngineで写真を分割する

 アプリ作成に気合が入りません。(これ、今朝も書いたね。)
 気持ちを奮い立たせるためにも、ブログに AndEngine の Tip のようなことを書きましょう。
 
 公開から既に2ヶ月近く経とうとしているのに、有効インストール数が5件とパッとしないことこの上ないアプリ「秘密のスライドパズル」なのですが、プログラム的には相当頑張った内容となっています。
 
 このアプリでは、写真を分割してスライドパズルをリアルタイムで作っています。「写真を分割する」なんてスゴいプログラムのような気がしません?
 AndEngine でのこの処理をご紹介します。「写真」ではなく「イラスト」でもよいですし、「分割」ではなく「切り出し」でも同じことです。
device-2014-07-14-005356
 写真を分割して並べ替えるとこうなります。
 
 まず、事前に画像を読み込んだ ITextureRegion picture_region を切り出すメソッドを作ります。読み込み部分は割愛。

public ITextureRegion loadPicture(float x, float y, float width, float height){
	picture_region.set(x, y, width, height);
	return picture_region;
}

 えっ、これだけ?
 これだけです。
 
 画面に Sprite を貼る時に位置と幅高さを指定します。こんな感じ。

	// それぞれの変数は名前から推し量ってください。
	for(int i = 0 ; i < panelCountX ; i++){
		for(int j = 0 ; j < panelCountY ; j++){
			x = offsetX + (panelSize*i);
			y = offsetY + (panelSize*(panelCountY-j-1));
			picture = new Sprite(x, y, loadPicture(offsetX + (i*panelSize), offsetY + (j*panelSize), panelSize, panelSize), vbom);
			// あとでのパネル毎の処理のためにタグを付けておく。
			picture.setTag((i*panelCountY) + j);
			// 中心座標で配置するとズレる場合があるので (0, 0) 座標を基準とする。
			picture.setOffsetCenter(0, 0);
			this.attachChild(picture);
		}
	}

 あまり使い道ないか・・。