lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 16981|回复: 83
打印 上一主题 下一主题

LHitList类

[复制链接]

46

主题

3

好友

1866

积分

偏将军

Rank: 4

跳转到指定楼层
楼主
发表于 2013-5-6 13:39:41 |只看该作者 |倒序浏览
我看lufylegend差一个功能,那就是返回碰撞列表。
如果加了这个功能就可以搞一个泡泡龙一类的游戏。
因此我帮忙封装了一下,代码如下:
  1. function LHitList(objectA,sprite,type){
  2.         if(!objectA)trace("The first param was not assigned.");
  3.         if(!sprite)trace("The second param was not assigned.");
  4.         if(!type)type = "TestRect";
  5.         var s = this;
  6.         s.objectA = objectA;
  7.         s.objectB = null;
  8.         s.sprite = sprite;
  9.         s.ishit = false;
  10.         s.list = [];
  11.         s.type = type;
  12. }
  13. LHitList.prototype.getList = function(){
  14.         var s = this;
  15.         var n = s.sprite.childList.length;
  16.         if(s.type != "TestRect" && s.type != "TestArc"){       
  17.                 trace("Type is wrong. It must be 'TestRect' or 'TestArc'.");
  18.         }else{
  19.                 while(n--){
  20.                         s.objectB = s.sprite.childList[n];
  21.                         if(s.type == "TestRect"){
  22.                                 s.ishit = LGlobal.hitTest(s.objectA,s.objectB);
  23.                         }else if(s.type == "TestArc"){
  24.                                 s.ishit = LGlobal.hitTestArc(s.objectA,s.objectB);
  25.                         }
  26.                         if(s.ishit == true && s.objectB != s.objectA){
  27.                                 s.list[s.list.length] = s.sprite.childList[n];
  28.                         }
  29.                 }
  30.                 return s.list;
  31.         }
  32. }
  33. LHitList.prototype.clearList = function(){
  34.         var s = this;
  35.         s.list = [];
  36. }
复制代码
用法如下:
LHitList(objectA,sprite,type)

参数:
objectA:碰撞区域A
sprite:一个sprite对象,用它的成员判断是否和碰撞区域A是否碰撞
type:碰撞类型,现在只有'TestRect'和 'TestArc'两种

方法:
getList:取出碰撞列表
clearList:清楚碰撞列表


测试地址:http://www.cnblogs.com/yorhom/articles/3062583.html
回复

使用道具 举报

无效楼层,该帖已经被删除
无效楼层,该帖已经被删除
无效楼层,该帖已经被删除
5#
无效楼层,该帖已经被删除
6#
无效楼层,该帖已经被删除
7#
无效楼层,该帖已经被删除
8#
无效楼层,该帖已经被删除
9#
无效楼层,该帖已经被删除
10#
无效楼层,该帖已经被删除
您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-4-24 08:12 , Processed in 0.051170 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部