今天研究了一下两个movieclip图形的碰撞,心得如下:
1.将两个要进行碰撞的movieclip存入两个bitmapdata中,使用bitmapdata.draw方法来分别获取这两个movieclip的图形信息,注意先用getRect获取可见图形的矩形区域,然后用matrix(1,0,0,1,-getRect.left,-getRect.top)来获取完整的图像信息
2.使用bitmapdata.hittest时的point一定要写对,要放到同一坐标系下进行比对
具体的程序结构如下
a. 名为hittest.fla文件中建两个mc,名称分别为star和base(star包含base,star的作用在于获取bitmapdata,而base的作用在于旋转),star绑定类star,base的mc中画一个不规则图形
b. hittest.fla文档绑定类hittest
c. hittest.as的内容
package {
import flash.display.MovieClip;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Bitmap;
import flash.geom.Rectangle;
import flash.utils.ByteArray;
import flash.display.BitmapData;
import flash.geom.Point;
public class hittest extends MovieClip {
private var setTimer:Timer;
private var star1:star;
private var star2:star;
public function