前回の第37回
z座標値を調べる仕組みづくり
4面を水平に回すだけなら,
まず,
比べるなら,
そのため,
面をつくって返す関数の修正
つぎは,
// var frontBitmap:Bitmap = xCreateFace(Image0, -nUnit, -nUnit, -nUnit);
// var backBitmap:Bitmap = xCreateFace(Image1, nUnit, -nUnit, nUnit, 180);
var frontSprite:Sprite = xCreateFace(Image0, 0, 0, -nUnit);
var backSprite:Sprite = xCreateFace(Image1, 0, 0, nUnit, 180);
関数xCreateFace()には,
// function xCreateFace(myBitmapData:Class, nX:Number, nY:Number, nZ:Number, nRotationY:Number = 0):Bitmap {
function xCreateFace(myBitmapData:Class, nX:Number, nY:Number, nZ:Number, nRotationY:Number = 0):Sprite {
var myBitmap:Bitmap = new Bitmap(new myBitmapData(0, 0));
var faceSprite:Sprite = new Sprite();
faceSprite.addChild(myBitmap);
// myBitmap.x = nX;
// myBitmap.y = nY;
// myBitmap.z = nZ;
// myBitmap.rotationY = nRotationY;
myBitmap.x = -myBitmap.width / 2;
myBitmap.y = -myBitmap.height / 2;
faceSprite.x = nX;
faceSprite.y = nY;
faceSprite.z = nZ;
faceSprite.rotationY = nRotationY;
// return myBitmap;
return faceSprite;
}
これで,
// mySprite.addChild(frontBitmap);
// mySprite.addChild(backBitmap);
mySprite.addChild(frontSprite);
mySprite.addChild(backSprite);
function xSetOrder():void {
/*
var nTop:uint = mySprite.numChildren - 1;
if (mySprite.rotationX > 90) {
mySprite.setChildIndex(backBitmap, nTop);
} else {
mySprite.setChildIndex(frontBitmap, nTop);
}
*/
}