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