Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package {
- import flare.basic.*;
- import flare.collisions.*;
- import flare.core.*;
- import flare.primitives.*;
- import flare.system.*;
- import flare.utils.*;
- import flash.display.*;
- import flash.events.*;
- import flash.geom.*;
- public class Main extends Sprite {
- private var _scene:Scene3D;
- private var hero:Pivot3D;
- private var heroCollision:SphereCollision;
- private var _level:Pivot3D;
- public function Main():void {
- if (stage) init();
- else addEventListener(Event.ADDED_TO_STAGE, init);
- }
- private function init(e:Event = null):void {
- removeEventListener(Event.ADDED_TO_STAGE, init);
- _scene = new Viewer3D(this);
- _level = _scene.addChildFromFile("assets/test.f3d");
- _scene.addEventListener(Scene3D.COMPLETE_EVENT, onSceneComplete);
- }
- private function onSceneComplete(e:Event):void {
- _scene.removeEventListener(Scene3D.COMPLETE_EVENT, onSceneComplete);
- var cube:Pivot3D = _level.addChild(new Cube("Collision", 50, 50, 50));
- cube.setPosition( -50, 0, 200);
- _createHero();
- _createCamera();
- _scene.addEventListener(Scene3D.UPDATE_EVENT, onSceneUpdate);
- }
- private function _createCamera():void {
- _scene.camera = new Camera3D( "myOwnCamera" );
- _scene.camera.setPosition( 0, 1000, 0 );
- _scene.camera.lookAt(hero.x, hero.y, hero.z);
- _scene.camera.fieldOfView = 60;
- }
- private function _createHero():void {
- var pos:Point = new Point(0, 215);
- var rad:Number = 5;
- hero = _scene.addChild(new Sphere("hero", rad));
- hero.x = pos.x;
- hero.z = pos.y;
- var offset:Vector3D = new Vector3D(0, 0, 0);
- heroCollision = new SphereCollision(hero, rad, offset);
- heroCollision.addCollisionWith(_level, true);
- heroCollision.reset();
- var sphere:Pivot3D = new Sphere("", rad);
- sphere.setPosition(offset.x, offset.y, offset.z);
- hero.addChild(sphere);
- }
- private function onSceneUpdate(e:Event):void {
- var speed:Number = 1;
- if ( Input3D.keyDown( Input3D.UP ) ) hero.translateZ( speed );
- if ( Input3D.keyDown( Input3D.DOWN ) ) hero.translateZ( -speed );
- if ( Input3D.keyDown( Input3D.LEFT ) ) hero.translateX( -speed );
- if ( Input3D.keyDown( Input3D.RIGHT ) ) hero.translateX( speed );
- trace(heroCollision.slider());
- Pivot3DUtils.setPositionWithReference( _scene.camera, 0, 50, 0, hero );
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement