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 > > > walking over 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 (keyIsDown) > > >> { > > >> > > >> switch(keyHandler) > > >> { > > >> > > >> case 65: myCube.moveLeft(20); break; > > >> > > >> case 68: myCube.moveRight(20); break; > > >> > > >> case 87: myCube.moveForward(20); break; > > >> > > >> case 83: myCube.moveBackward(20); break; > > >> } > > >> } > > > >> myCollisionmap.read(myCube.x, > > >> -myCube.z); > > > >> myCamera.view; > > >> myView.render(); > > >> } > > >> } > > > >> } > > > >> codeend ------------------------------------------------------- > > > >> maybe i forgot something to import? i dont know .... do you see any > > >> errors? > > >> if i comment the lines of collisonmap out ... i can walk over the > > >> plane with the collisionmap > > ... > > Erfahren Sie mehr »
