hi le_unam, if you can help me please please help me, greatly
appreciated, have been pulling my hair for hours :)))

i just saw your post but couldnt understand what was going on..

i'm using the bitmap that was used inside Advanced_FrustumHotelRoom
sample, if you see the bitmap (from the sample) it has a red area that
was surrounded by green area, my questions are

- i managed to detect the red color by using this method
_collisionMap.getColorAt(_view.camera.x, _view.camera.y) but no matter
how far i went it never detected the green area
- how to match the bitmap with the model later on? can we create some
sort of visual guidance because right now i feel like i'm measuring
inside a cave

below is my code,

import away3d.extrusions.CollisionMap;
        import flash.display.BitmapData;
        import flash.display.Stage;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.geom.Rectangle;

        import com.gaiaframework.core.GaiaMain;

        import com.albakara.views.GameView;

        import away3d.cameras.*;
        import away3d.cameras.lenses.*;
        import away3d.containers.*;
        import away3d.core.base.*;
        import away3d.core.clip.*;
        import away3d.core.draw.*;
        import away3d.core.math.*;
        import away3d.core.render.*;
        import away3d.core.utils.*;
        import away3d.events.*;
        import away3d.loaders.*;
        import away3d.loaders.data.*;
        import away3d.materials.*;
        import away3d.primitives.*;

        public class MainView extends GameView
        {
                private static const ACCELERATION:Number = 70;
                private static const MOVE_SPEED:Number = 250;

                private var _view:View3D;
                private var _lastMouseX:Number;
                private var _lastMouseY:Number;
                private var _lastRotX:Number;
                private var _lastRotY:Number;
                private var _rotX:Number;
                private var _rotY:Number;
                private var _dragX:Number = 0;
                private var _dragY:Number = 0;



                private var _zDir:Number = 10;
                private var _speedMultiplier:Number = .4;

                public function MainView()
                {
                        initAway3D();
                        initCollisionBitmap();
                }

                private function initAway3D():void
                {
                        _view = new View3D( { x: getStage().stageWidth * .5, y:
getStage().stageHeight * .5, clipping: new NearfieldClipping() } );
                        _view.camera.lens = new PerspectiveLens();
                        _view.camera.zoom = 10;
                        _view.camera.rotationX = 0;
                        _view.camera.rotationY = 0;
                        _view.camera.rotationZ = 0;

                        getLastPosition();

                        var sphere:Object3D = new Sphere({material:"blue#cyan", 
radius:250,
segmentsW:12, segmentsH:9, y:50, x:10, z:200});
                        // add the sphere to the scene
                        _view.scene.addChild(sphere);

                        addChild(_view);
                        addEventListener(Event.ENTER_FRAME, onEnterFrame, 
false, 0, true);

                }

                private function onEnterFrame(e:Event):void
                {

                        _dragX          = mouseX;
                        _dragY          = mouseY;

                        var maxSpeed:Number = MOVE_SPEED * _speedMultiplier;

                        _rotX = _lastMouseX - (mouseY - _lastRotY)*0.7;
                        _rotY = _lastMouseY + (mouseX - _lastRotX)*0.7;

                        if(_rotX > 90) _rotX = 70;
                        if(_rotX < -90) _rotX = -70;
                        _view.camera.rotationX += (_rotX - 
_view.camera.rotationX)/50;
                        _view.camera.rotationY += (_rotY - 
_view.camera.rotationY) / 50;

                        //trace('_lastMouseX:', _lastMouseX, '_lastRotY:', 
_lastRotY,
'mouseY:', mouseY);

                        _view.camera.moveForward(_zDir);

// in here i got the read but i couldnt detect the green
                        trace(_collisionMap.getColorAt(_view.camera.x, 
_view.camera.y));

                        _view.render();

                        getLastPosition();
                }

                private function getLastPosition():void
                {
                        _lastMouseX = _view.camera.rotationX;
                        _lastMouseY = _view.camera.rotationY;
                        _lastRotX       = mouseX;
                        _lastRotY       = mouseY;
                }

// COLLISION BITMAP
//___________________________________________________________

                private var _collisionBitmap:BitmapData;
                private var _collisionMap:CollisionMap;

                private function initCollisionBitmap():void
                {
                        _collisionBitmap        = Cast.bitmap(CollisionBitmap);
                        _collisionMap           = new 
CollisionMap(_collisionBitmap, .2, .2);
                        _collisionMap.setColorEvent(0x00FF00, "green", 
onCollision);

                }

                private function onCollision(e:*):void
                {
                        trace("collision");
                }

// HELPER
//___________________________________________________________

                private function getStage():Stage
                {
                        try
                        {
                                return GaiaMain.instance.stage;
                        }
                        catch (e:Error)
                        {
                                //
                        }

                        return stage;
                }
        }

}

On Aug 25, 10:13 am, le_unam <[email protected]> wrote:
> maybe when you tell some details of what isnt running i can help you

Reply via email to