关于两个不规则图形的碰撞检测

本文介绍了如何进行两个不规则movieclip图形的碰撞检测。通过将图形转换为BitmapData,利用getRect获取矩形区域,再用matrix调整坐标,然后在统一坐标系下进行hitTest比对。具体步骤包括创建movieclip,绘制不规则图形,使用Timer进行动态检测,以及详细的类结构和方法实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天研究了一下两个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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值