高级碰撞检测(一)

本文介绍了如何使用 BitmapData.hitTest 方法进行像素级别的碰撞检测,适用于需要精确碰撞的应用。通过示例代码展示了如何在SLG项目中检测非位图对象的碰撞,并在碰撞时添加光晕特效。通过bmp1.hitTest方法判断两个对象是否发生碰撞,从而实现高级碰撞检测的效果。
摘要由CSDN通过智能技术生成

这里讲的碰撞检测是针对 BitmapData.hitTest 的应用,它最大的优点是像素碰撞检测,对于碰撞检测精细要求较高可以采用这种方法,但是可能消耗比较大,我暂时碰到的项目很少应用它来进行碰撞检测,更多的是居于距离的检测,也跟项目的显示对象的数量多少有一定的联系吧(这是我的猜想,大神有见解求讲解下)。

现在着手的项目是一个SLG项目,负责战斗的逻辑实现,AI这一块,每次更改需求都让我深深的蛋碎,它的战斗目前是比较多的单位的,所以涉及到的运算就要考虑周详,碰撞行走攻击等状态都有很大的探讨空间,在下一个讲解会跟大家交流下思想,我才疏学浅,欢迎大家帮忙修正,也希望对大家有点帮助。好了,废话就不那么多了,先粘贴个代码看看。

(1)首先是一个五角星类,这些代码基本是高级动画编程搬下来的

package
{
import flash.display.Sprite;

/****************************************************************
* 五角星类
****************************************************************/
public class Star extends Sprite
{
/************************************************************
* 五角星
*/
public function Star(radius:Number, color:uint = 0xffff00)
{
graphics.lineStyle(0);
graphics.moveTo(radius, 0);
graphics.beginFill(color);

// 划线
for(var i:int = 0; i < 11; i ++)
{
var radius2:Number = radius;
if(i % 2 > 0)
{

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值