Hit test help

Hello,

I am new to flash and actionscript, and I cannot find code for hit test anywhere, expecially for what I want it to do.

I have a movie clip of a car, and a movie clip of a tree. When the car hits the tree, I want the car movieclip’s speed to decrease to zero, making it stop. Can someone help me?

if (car.hitTest(_root.tree)){
speed=0;
}

the middle is variable to you.

Do I put that on the car or tree?

Here is the total code for the car.

onClipEvent(load) { 
      speed = 0; 
   } 
   onClipEvent(enterFrame) { 
   if (Key.isDown(Key.UP)) {speed += 1;
   moving=1}
   if (Key.isDown(Key.DOWN)) { 
    speed -= 1; 
      } 
      if (speed>10) { 
         speed = 10; 
      } 
      if (speed<-10) { 
         speed = -10; 
      } 
       
      if (Key.isDown(Key.LEFT)) { 
         _rotation -= 1*(Math.abs(speed)); 
   	 //Makes sure you can only turn if you're moving
      } 
       
      if (Key.isDown(Key.RIGHT)) { 
         _rotation += 1*(Math.abs(speed)); 
      } 
      speed *= .9; 
      x = Math.sin(_rotation*Math.PI/180)*speed; 
      y = Math.cos(_rotation*Math.PI/180)*speed*-1; 
      _x = (_x+x); 
      _y = (_y+y); 
   
   
   }
   if (car.hitTest(_root.tree)){
   speed=0;
   }

When I tested, I got this error:

Error Scene=Scene 1, layer=Layer 1, frame=1:Line 33: Statement must appear within on/onClipEvent handler
if (car.hitTest(_root.tree)){

Total ActionScript Errors: 1 Reported Errors: 1

Anyways, here is the .fla

And remember, I am new to this. please don’t make fun of my drawing.

http://venus.walagata.com/w/kwikemart614/carwontwork.fla


onClipEvent (load) {
	speed = 0;
}
onClipEvent (enterFrame) {
	if (Key.isDown(Key.UP)) {
		speed += 1;
		moving = 1;
	}
	if (Key.isDown(Key.DOWN)) {
		speed -= 1;
	}
	if (speed>10) {
		speed = 10;
	}
	if (speed<-10) {
		speed = -10;
	}
	if (Key.isDown(Key.LEFT)) {
		_rotation -= 1*(Math.abs(speed));
		//Makes sure you can only turn if you're moving
	}
	if (Key.isDown(Key.RIGHT)) {
		_rotation += 1*(Math.abs(speed));
	}
	speed *= .9;
	x = Math.sin(_rotation*Math.PI/180)*speed;
	y = Math.cos(_rotation*Math.PI/180)*speed*-1;
	_x = (_x+x);
	_y = (_y+y);
	if (this.hitTest(_root.tree)) {
		speed = 0;
	}
}

that on the car works.

Thanks… It almost works. The only problem is that when I hit the tree, it doesn’t fully stop… It just goes slower.

http://venus.walagata.com/w/kwikemart614/carwontwork.swf


Also, the stage is 400x400. How do I make the car stop when it hits the border of the stage.


onClipEvent (load) {
	speed = 0;
}
onClipEvent (enterFrame) {
	if (Key.isDown(Key.UP)) {
		speed += 1;
		moving = 1;
	}
	if (Key.isDown(Key.DOWN)) {
		speed -= 1;
	}
	if (speed>10) {
		speed = 10;
	}
	if (speed<-10) {
		speed = -10;
	}
	if (Key.isDown(Key.LEFT)) {
		_rotation -= 1*(Math.abs(speed));
		//Makes sure you can only turn if you're moving
	}
	if (Key.isDown(Key.RIGHT)) {
		_rotation += 1*(Math.abs(speed));
	}
	if (this.hitTest(_root.tree)) {
		speed = 0;
		speed *= 0;
	}
	speed *= .9;
	x = Math.sin(_rotation*Math.PI/180)*speed;
	y = Math.cos(_rotation*Math.PI/180)*speed*-1;
	_x = (_x+x);
	_y = (_y+y);
}

that’d be it.

gimme a second on the border.

Ok… Sorry to bother you again, but on that second code… When the car actually stops, the cars gets stuck in the tree. How can I make it be able to go backwards?

Once again, Im sorry for the inconvienence. hopefully I can do it myself next time.

http://venus.walagata.com/w/kwikemart614/carwontwork.swf

Well, I have to go for today. Try to work on that… And thanks for the help.