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 texture.
greetings manuel
On 9 Jul., 10:22, Fabrice3D <[email protected]> wrote:
> > i spend so much time for this now, but it doesnt work = (
>
> If you expect some guidance, you have to tell bits more.
>
> reading at your previous questions, these were as3/synthax related issues.
> wrong params to constructors or wrong types..
>
> Are you still stuck with the same issues?
>
> Fabrice