hey i think you have to read the collision map like this: myCollisionmap.read(myCube.x, -myCube.z);
in addition to this you can trace the getcolor ... but the read is neccassary maybe. try it On 25 Aug., 09:42, bebensiganteng <[email protected]> wrote: > 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
