The default is set to center of the map, yet reading a bmd is allways topleft.
so you define as cm.offsetX = cm.offsetX-150;  or + 150 if you have a your 
Plane in negative x;
The way you have define now, works, but the readings are made in world x/z 
positive quadrant only.

its confusing but very simple. Try think from top of your scene that the -x and 
-z of your sceneobjects bounds
are the top left on the map, the x and z of the object must be the downright. 
if your map is smaller than the object bounds units 
just define the factorX and Y in ratio.

Fabrice
  
On Jul 13, 2010, at 8:43 AM, le_unam wrote:

> ehm okay, now there is another small problem ... the collisionmap is
> at the wrong position. Is there a way to change it? i tried offset but
> i dont know how offset works. i placed a plane with the texture off my
> collisionmap withouth setting any x and z values. so its equal to the
> collisionmap and works fine, but if i set the plane.x = 150 and
> collisionmap.offsetX = 150 its not the same ... why? can anybody
> explain what offset does? thank you = )
> 
> On 12 Jul., 11:02, le_unam <[email protected]> wrote:
>> hey fabrice ... thank you sooo much. The getcolor information did
>> help. the problem was that my "red" in the picture was compressed from
>> #ff0000 to #fe0000. Dont know why but its okay ... now it works
>> great .... big big thanks :-*
>> 
>> On 9 Jul., 17:54, Fabrice3D <[email protected]> wrote:
>> 
>>> because uv's are 1 where in flash they'll be 0
>>> and one where you would expect a height value
>> 
>>> then, this is important make sure the color you test on IS the color you 
>>> think it is...
>> 
>>> make a test at a position on the map you know its say "yellow"
>>> check the reading value and the one you entered for the event.
>>> due to compression algo's if you use a bitmap color might change
>> 
>>> fix is to draw with vector movieclips, and draw this movieclip into bitmap 
>>> runtime.
>> 
>>> again, to test addchild your map above, and plot the readings and trace the 
>>> colors to see if correct
>>> the class as a special test call for this purpose --> doc
>> 
>>> Fabrice
>> 
>>> On Jul 9, 2010, at 4:46 PM, le_unam wrote:
>> 
>>>> okay ehm the x and z values seem to be correct. on startup it is 0, 0
>>>> when i move forward it counts ... -20 -40 -60 -80 -100 .... and so on.
>>>> but why should is use -z? whats the matter with the -? can u please
>>>> explain it to me?
>>>> what about the offset position of the map? where is the startpoint?
>>>> lower left corner = 0, 0 ?
>> 
>>>> On 9 Jul., 16:06, le_unam <[email protected]> wrote:
>>>>> hey thanks for your answer ... i will try this ... the scale ratio 1,1
>>>>> is because my plane is width:1000, height:1000 and my map is width:
>>>>> 1000, height:1000 too.
>>>>> maybe there is an offset problem or something like this.  thanks
>> 
>>>>> On 9 Jul., 15:10, Fabrice3D <[email protected]> wrote:
>> 
>>>>>> you have a scale ratio 1, 1 passed to class
>> 
>>>>>> trace your x and -z when you ask the "read"
>>>>>> they are probably exceeded the bounds of your map.
>> 
>>>>>> try attach on top of your scene this map or a duplicate, and setPixel at 
>>>>>> this coords...
>>>>>> i bet you are way off.
>> 
>>>>>> Fabrice
>> 
>>>>>> On Jul 9, 2010, at 2:00 PM, le_unam wrote:
>> 
>>>>>>> hey fabrice okay now there are no more errors ... it was an syntax
>>>>>>> problem. But the collisionmap isnt still working. nothing happens when
>>>>>>> walkingover the "red" area = (
>>>>>>> where can be the mistake? the y position of the cube doesnt matter
>>>>>>> right?
>>>>>>> what about the offset position of the map? ist it necessary to set it?
>> 
>>>>>>> best regards
>> 
>>>>>>> On 9 Jul., 11:33, le_unam <[email protected]> wrote:
>>>>>>>> hey fabrice thank you ... well i tried to make an easy example for
>>>>>>>> collision map. i created a cube, which is followed by the camera and a
>>>>>>>> plane with the texture of the collisionmap for easy understanding. but
>>>>>>>> i still get an error ... maybe you can check my code for syntax
>>>>>>>> problems. it would be very nice.
>> 
>>>>>>>> code --------------------------------------------------------------
>> 
>>>>>>>> package
>>>>>>>> {
>>>>>>>>         import away3d.cameras.SpringCam;
>>>>>>>>         import away3d.containers.*;
>>>>>>>>         import away3d.core.base.Object3D;
>>>>>>>>         import away3d.core.clip.FrustumClipping;
>>>>>>>>         import away3d.core.math.Number3D;
>>>>>>>>         import away3d.core.render.Renderer;
>>>>>>>>         import away3d.core.utils.Cast;
>>>>>>>>         import away3d.extrusions.CollisionMap;
>>>>>>>>         import away3d.materials.*;
>>>>>>>>         import away3d.primitives.*;
>> 
>>>>>>>>         import flash.display.DisplayObjectContainer;
>>>>>>>>         import flash.display.BitmapData;
>>>>>>>>         import flash.display.MovieClip;
>>>>>>>>         import flash.events.Event;
>>>>>>>>         import flash.events.KeyboardEvent;
>>>>>>>>         import flash.ui.Keyboard;
>> 
>>>>>>>>         [SWF(width="800", height="600", frameRate="30", quality="LOW",
>>>>>>>> backgroundColor="0xFFFFFF")]
>>>>>>>>         public class colltest extends MovieClip
>>>>>>>>         {
>>>>>>>>                         private var myScene:Scene3D;
>>>>>>>>                         private var myCamera:SpringCam;
>>>>>>>>                         private var myClipping:FrustumClipping;
>>>>>>>>                         private var myCube:Cube;
>>>>>>>>                         private var myView:View3D;
>>>>>>>>                         private var myCollision:BitmapData;
>>>>>>>>                         private var myCollisonmap:CollisionMap;
>> 
>>>>>>>>                         private var keyIsDown:Boolean = false;
>>>>>>>>                         private var keyHandler:Number = 0;
>> 
>>>>>>>>                         private var myBoden:Plane;
>> 
>>>>>>>>                         public function colltest()
>>>>>>>>                         {
>>>>>>>>                                         initEngine();
>>>>>>>>                                         initObjects();
>>>>>>>>                                         initEventListeners();
>>>>>>>>                         }
>> 
>>>>>>>>                         public function initEngine()
>>>>>>>>                         {
>>>>>>>>                                         myScene = new Scene3D;
>>>>>>>>                                         myCamera = new SpringCam;
>>>>>>>>                                         myClipping = new 
>>>>>>>> FrustumClipping;
>> 
>>>>>>>>                                         myView = new View3D( { 
>>>>>>>> scene:myScene, camera:myCamera,
>>>>>>>> clipping:myClipping, renderer:Renderer.CORRECT_Z_ORDER,
>>>>>>>> x:stage.stageWidth / 2, y:stage.stageHeight / 2 } );
>>>>>>>>                                         addChild(myView);
>> 
>>>>>>>>                                         myScene.addChild(myCamera);
>> 
>>>>>>>>                                         myCube = new Cube( { width:1, 
>>>>>>>> height:1, depth:1 } );
>>>>>>>>                                         myScene.addChild(myCube);
>> 
>>>>>>>>                                         myCamera.zoom = 10;
>>>>>>>>                                         myCamera.focus = 100;
>>>>>>>>                                         myCamera.mass = 10;
>>>>>>>>                                         myCamera.damping = 10;
>>>>>>>>                                         myCamera.stiffness = 10;
>>>>>>>>                                         myCamera.target = myCube;
>>>>>>>>                                         
>>>>>>>> myCamera.lookAt(myCube.position);
>>>>>>>>                     myCamera.lookOffset = new Number3D(0, 0, 100);
>>>>>>>>                     myCamera.positionOffset = new Number3D(0, 0, 50);
>> 
>>>>>>>>                                         myCollision = new 
>>>>>>>> BitmapData(Cast.bitmap(cmap));
>>>>>>>>                                         myCollisionmap = new 
>>>>>>>> CollisionMap(myCollision, 1, 1);
>>>>>>>>                                         
>>>>>>>> myCollisionmap.setColorEvent(0xFF0000, "red", onCollision);
>> 
>>>>>>>>                                         myView.render();
>>>>>>>>                         }
>> 
>>>>>>>>                         public function initObjects()
>>>>>>>>                         {
>>>>>>>>                                         var myMaterial:BitmapMaterial 
>>>>>>>> = new
>>>>>>>> BitmapMaterial(Cast.bitmap(cmap));
>>>>>>>>                                         myBoden = new Plane ( { 
>>>>>>>> material:myMaterial, width:1000, height:
>>>>>>>> 1000, y: -stage.stageWidth / 2 } );
>>>>>>>>                                         myScene.addChild(myBoden);
>>>>>>>>                         }
>> 
>>>>>>>>                         public function onCollision()
>>>>>>>>                         {
>>>>>>>>                                         trace("berührt");
>>>>>>>>                         }
>> 
>>>>>>>>                         public function initEventListeners()
>>>>>>>>                         {
>>>>>>>>                                         
>>>>>>>> addEventListener(Event.ENTER_FRAME, initEnterFrame);
>>>>>>>>                                         
>>>>>>>> stage.addEventListener(KeyboardEvent.KEY_DOWN, keyDown);
>>>>>>>>                                         
>>>>>>>> stage.addEventListener(KeyboardEvent.KEY_UP, keyUp);
>>>>>>>>                         }
>> 
>>>>>>>>                         public function keyDown(e:KeyboardEvent):void
>>>>>>>>                         {
>>>>>>>>                                         keyIsDown = true;
>>>>>>>>                                         keyHandler = e.keyCode;
>>>>>>>>                         }
>> 
>>>>>>>>                         public function keyUp(e:KeyboardEvent):void
>>>>>>>>                         {
>>>>>>>>                                         keyIsDown = false;
>>>>>>>>                         }
>> 
>>>>>>>>                         public function initEnterFrame(e:Event):void
>>>>>>>>                         {
>>>>>>>>                                         if
>> 
>> ...
>> 
>> Erfahren Sie mehr »

Reply via email to