flash on 2009-5-21
flash
papervision3D
プロファイラー
♥0 |
Line 54 |
Modified 2009-05-21 06:28:57 |
MIT License
archived:2017-03-10 13:05:16
ActionScript3 source code
/**
* Copyright oreore ( http://wonderfl.net/user/oreore )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/mKPw
*/
package
{
//flash
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
//papervision3D
import org.papervision3d.materials.ColorMaterial;
import org.papervision3d.materials.special.CompositeMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.view.BasicView;
//プロファイラー
import com.flashdynamix.utils.SWFProfiler;
public class Main extends Sprite
{
private var plane:Plane;
private var viewPort:BasicView;
public function Main()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
SWFProfiler.init(this);
init();
}
private function init():void
{
/************************************************************************
* 1 ビューポートを作成(BasicViewを使う)
************************************************************************/
viewPort = new BasicView(stage.stageWidth, stage.stageHeight, true, false);
viewPort.buttonMode = true;
addChild(viewPort);
/************************************************************************
* 2.カメラの設定
* BasicView を new したときに カメラが生成されているので
* viewPort.camera でアクセスします。
************************************************************************/
viewPort.camera.z = -1000;
viewPort.camera.y = 500;
/************************************************************************
* 3.シーンの作成
* カメラと同様にBasicView を new したときに シーンも生成され
* ているので今回はnew しない。
************************************************************************/
//今回は特になにもしないが混乱を避けるためにあえて記載しとく
//なしもしないけどシーンはできてるよ~!
//空のDisylayObject3Dをworldとして作成すると便利かも?
/************************************************************************
* 4.レンダリング
* こちらも同様にBasicViewをnew したときにBasicRenderEngine
* が生成されてますので、アクセスはviewPort.startRendering()
************************************************************************/
viewPort.startRendering();
/************************************************************************
* 5.3Dオブジェクトの生成
************************************************************************/
//板を作成
var wfm:WireframeMaterial = new WireframeMaterial();
wfm.doubleSided = true;//裏も描画する
plane = new Plane(wfm, 300, 200, 4, 4);
viewPort.scene.addChild(plane);
//床を作成
var floorMate:CompositeMaterial = new CompositeMaterial();
floorMate.addMaterial(new WireframeMaterial(0x696969,50));
floorMate.addMaterial(new ColorMaterial(0xdcdcdc,0.5));
var floor:Plane = new Plane(floorMate, 1000, 1000, 12, 12);
floor.rotationX = 90;
viewPort.scene.addChild(floor);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(e:Event):void
{
plane.y += 1;
plane.rotationX += 1;
plane.rotationZ += 1;
}
}
}