ぼちぼち

package{
	import flash.events.*;
	import flash.display.*;

	import org.papervision3d.scenes.*;
	import org.papervision3d.objects.*;
	import org.papervision3d.cameras.*;
	import org.papervision3d.materials.*;

	public class CubeFight extends Sprite{
		private var container : Sprite;
		private var scene     : Scene3D;
		private var camera    : Camera3D;
		private var rootNode  : DisplayObject3D;

		private var obj:Array = new Array();

		public function CubeFight():void{
			stage.frameRate = 60;

			//画面いっぱいに表示(縦横比無視)したいときは下記を使う
			//stage.scaleMode = StageScaleMode.EXACT_FIT;

			//resize に対応(swf を browser で直接ひらいているときとか)
			stage.addEventListener(Event.RESIZE, onStageResize);

			//定期的に event 発生
			addEventListener(Event.ENTER_FRAME, myLoopEvent);

			//表示用の sprite object を生成
			container = new Sprite();
			container.x = 400 / 2; //at center : swf width	= 400
			container.y = 400 / 2; //at center : swf height = 400
			addChild(container);

			//scene object を作る
			scene = new Scene3D(container);

			//camera object を作る
			camera = new Camera3D();
			camera.z = -200;
			camera.focus = 500;
			camera.zoom = 1;

			//root node を作る
			rootNode = new DisplayObject3D();
			scene.addChild(rootNode);

			//いろんな3D object を作ってみて、配列に入れておく
			obj.push(createCube());

			//3D object を root node に追加
			for(var i:int;i < obj.length;i++){
				rootNode.addChild(obj[i]);
			}
		}

		private function createCube():DisplayObject3D{
			var material:WireframeMaterial = new WireframeMaterial();
			material.oneSide = false;
			material.lineColor = 0xFF0000;
			material.lineAlpha = 1;

			var width:Number = 300;
			var depth:Number = 300;
			var height:Number = 300;
			var __segmentsS:Number = 32;
			var __segmentsT:Number = 32;
			var __segmentsH:Number = 32;
			var cube:Cube = new Cube(material, width, depth, height, __segmentsS, __segmentsT, __segmentsH);
			cube.x = 0;
			cube.y = 20;
			cube.z = -150;

			return cube;
		}

		private function myLoopEvent(event:Event):void{
			scene.renderCamera(camera);
		}

		private function onStageResize(event:Event):void{
			container.x = stage.stageWidth / 2;
			container.y = stage.stageHeight / 2;
		}
	}
}

Arena[アリーナ]が出来た?
別 class の方が良いだろうけどどうしたもんか。


mimic28号でした。