Advertisement
Guest User

Flare3D Collision Issue

a guest
Feb 19th, 2012
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package {
  2.     import flare.basic.*;
  3.     import flare.collisions.*;
  4.     import flare.core.*;
  5.     import flare.primitives.*;
  6.     import flare.system.*;
  7.     import flare.utils.*;
  8.     import flash.display.*;
  9.     import flash.events.*;
  10.     import flash.geom.*;
  11.    
  12.     public class Main extends Sprite {
  13.         private var _scene:Scene3D;
  14.         private var hero:Pivot3D;
  15.         private var heroCollision:SphereCollision;
  16.         private var _level:Pivot3D;
  17.        
  18.         public function Main():void {
  19.             if (stage) init();
  20.             else addEventListener(Event.ADDED_TO_STAGE, init);
  21.         }
  22.        
  23.         private function init(e:Event = null):void {
  24.             removeEventListener(Event.ADDED_TO_STAGE, init);
  25.             _scene = new Viewer3D(this);
  26.             _level = _scene.addChildFromFile("assets/test.f3d");
  27.            
  28.             _scene.addEventListener(Scene3D.COMPLETE_EVENT, onSceneComplete);
  29.         }
  30.        
  31.         private function onSceneComplete(e:Event):void {
  32.             _scene.removeEventListener(Scene3D.COMPLETE_EVENT, onSceneComplete);
  33.             var cube:Pivot3D = _level.addChild(new Cube("Collision", 50, 50, 50));
  34.             cube.setPosition( -50, 0, 200);
  35.             _createHero();
  36.             _createCamera();
  37.             _scene.addEventListener(Scene3D.UPDATE_EVENT, onSceneUpdate);
  38.         }
  39.        
  40.         private function _createCamera():void {
  41.             _scene.camera = new Camera3D( "myOwnCamera" );
  42.             _scene.camera.setPosition( 0, 1000, 0 );
  43.             _scene.camera.lookAt(hero.x, hero.y, hero.z);
  44.             _scene.camera.fieldOfView = 60;
  45.         }
  46.        
  47.         private function _createHero():void {
  48.             var pos:Point = new Point(0, 215);
  49.             var rad:Number = 5;
  50.             hero = _scene.addChild(new Sphere("hero", rad));
  51.             hero.x = pos.x;
  52.             hero.z = pos.y;
  53.             var offset:Vector3D = new Vector3D(0, 0, 0);
  54.             heroCollision = new SphereCollision(hero, rad, offset);
  55.             heroCollision.addCollisionWith(_level, true);
  56.             heroCollision.reset();
  57.            
  58.             var sphere:Pivot3D = new Sphere("", rad);
  59.             sphere.setPosition(offset.x, offset.y, offset.z);
  60.             hero.addChild(sphere);
  61.         }
  62.        
  63.         private function onSceneUpdate(e:Event):void {
  64.             var speed:Number = 1;
  65.             if ( Input3D.keyDown( Input3D.UP ) ) hero.translateZ( speed );
  66.             if ( Input3D.keyDown( Input3D.DOWN ) ) hero.translateZ( -speed );
  67.             if ( Input3D.keyDown( Input3D.LEFT ) ) hero.translateX( -speed );
  68.             if ( Input3D.keyDown( Input3D.RIGHT ) ) hero.translateX( speed );
  69.            
  70.             trace(heroCollision.slider());
  71.            
  72.             Pivot3DUtils.setPositionWithReference( _scene.camera, 0, 50, 0, hero );
  73.         }
  74.        
  75.     }
  76.    
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement