Search tutorials
5. Now, left-click on the target Movieclip and write the
following code in the Actions pane:
onClipEvent(load)
{
xcorrect=(_root.weapon._width/2);
ycorrect=(_root.weapon._height/2);
}
onClipEvent(enterFrame)
{
if (this.hitTest(_root.weapon._x,_root.weapon._y-ycorrect,true)==true)
{
_root.weapon.yspeed=0;
}
}
The syntax for hitTest is myMovieClip.hitTest(x, y, shapeFlag)
The shapeFlag takes two values true and false. True indicates that the HitTest is to be conducted on the actual shape of the calling MovieClip and not just the Bounding Box. The calling MovieClip is the MovieClip which calls the HitTest. In the above code, you can see that the target MovieClip has called the HitTest on the weapon Movieclip's X and Y coordinates.
The shapeFlag is a parameter for the calling movieClip target and not the weapon MovieClip. Since we want the bullet to hit the exact spot on the irregular MovieClip target, we set the shapeFlag to true.
Then we check wether the HitTest returns true or false. If it returns true, the bullet stops moving. This is just an example, you can perform any other task like hiding the bullet, etc.
if (this.hitTest(_root.weapon._x+xcorrect,_root.weapon._y,true)==true)
{
//steps to be taken
}
In the above example you can omit the ycorrect.
onClipEvent(load)
{
xcorrect=(_root.weapon._width/2);
ycorrect=(_root.weapon._height/2);
}
onClipEvent(enterFrame)
{
if (this.hitTest(_root.weapon._x,_root.weapon._y-ycorrect,true)==true)
{
_root.weapon.yspeed=0;
}
}
Explanation
The syntax for hitTest is myMovieClip.hitTest(x, y, shapeFlag)
The shapeFlag takes two values true and false. True indicates that the HitTest is to be conducted on the actual shape of the calling MovieClip and not just the Bounding Box. The calling MovieClip is the MovieClip which calls the HitTest. In the above code, you can see that the target MovieClip has called the HitTest on the weapon Movieclip's X and Y coordinates.
The shapeFlag is a parameter for the calling movieClip target and not the weapon MovieClip. Since we want the bullet to hit the exact spot on the irregular MovieClip target, we set the shapeFlag to true.
Then we check wether the HitTest returns true or false. If it returns true, the bullet stops moving. This is just an example, you can perform any other task like hiding the bullet, etc.
Note: If you are creating a bottom-top space
shooter, you dont need to correct the X coordinate. If you are
creating a left-right shooter, use the xcorrect as
follows:
if (this.hitTest(_root.weapon._x+xcorrect,_root.weapon._y,true)==true)
{
//steps to be taken
}
In the above example you can omit the ycorrect.
» Level Intermediate |
Added: 2006-03-15 Rating: 7 Votes: 9 |
» Author |
College student 19 years old Interests: Computers, Sports |
» Download |
Download the files used in this tutorial. |
Download (0 kb) |
» Forums |
More help? Search our boards for quick answers! |