lufy's legend

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

addShape方法多边形碰撞问题

[复制链接]

3

主题

0

好友

25

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2014-11-4 11:05:50 |只看该作者 |倒序浏览
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <title>多边形碰撞问题</title>
  6.                 <script type="text/javascript" src="http://lufylegend.com/api/api/load_lufylegend.js"></script>
  7.         </head>
  8.         <body>
  9.                         <div id="legend">
  10.                         </div>
  11.                         <script>
  12.                         LInit(50, "legend", 800, 480, main);
  13.                         function main () {
  14.                                 LGlobal.setDebug(true);
  15.                                 var container = new LSprite();
  16.                                 addChild(container);
  17.                                 var circle1 = new LSprite();
  18.                                 circle1.x = 70;
  19.                                 circle1.y = 270;
  20.                                 circle1.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000");
  21.                                 var circle2 = new LSprite();
  22.                                 circle2.x = 120;
  23.                                 circle2.graphics.drawVertices(2, "#000000", [
  24.                                         [0, 0], [247, 0], [247, 607], [0, 607],
  25.                                         [0, 472], [36, 449], [70, 423], [100, 397],
  26.                                         [124, 374], [150, 343], [171, 309], [183, 282],
  27.                                         [187, 265], [189, 252], [189, 224], [188, 212],
  28.                                         [185, 205], [181, 191], [173, 175], [166, 165],
  29.                                         [155, 154], [140, 143], [125, 135], [109, 131],
  30.                                         [68, 132], [48, 137], [24, 152], [0, 175]
  31.                                 ], true, "#880088");
  32.                                 container.addChild(circle1);
  33.                                 container.addChild(circle2);
  34.                                 trace(circle1.hitTestObject(circle2));//应该是没碰上,但是却碰上了
  35.                         }
  36.                         </script>
  37.         </body>
  38. </html>
复制代码
用LSprite添加了碰撞区域,是多边形的,但是小黑方块还是碰上了,大神帮忙看看
回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

沙发
发表于 2014-11-4 11:08:29 |只看该作者
你的addShape在哪里?
不回答与技术和引擎不相关的问题
回复

使用道具 举报

3

主题

0

好友

25

积分

士兵

Rank: 1

板凳
发表于 2014-11-4 11:18:57 |只看该作者
lufy 发表于 2014-11-4 11:08
你的addShape在哪里?
  1. <!DOCTYPE html>
  2. <html lang="en">
  3.         <head>
  4.                 <meta charset="utf-8" />
  5.                 <title>多边形碰撞问题</title>
  6.                 <script type="text/javascript" src="http://lufylegend.com/api/api/load_lufylegend.js"></script>
  7.         </head>
  8.         <body>
  9.                         <div id="legend">
  10.                         </div>
  11.                         <script>
  12.                         LInit(50, "legend", 800, 480, main);
  13.                         function main () {
  14.                                 LGlobal.setDebug(true);
  15.                                 var container = new LSprite();
  16.                                 addChild(container);
  17.                                 var circle1 = new LSprite();
  18.                                 circle1.x = 70;
  19.                                 circle1.y = 270;
  20.                                 circle1.graphics.drawRect(1,"#000000",[0,0,100,100],true,"#000000");
  21.                                 var circle2 = new LSprite();
  22.                                 circle2.x = 120;
  23.                                 circle2.graphics.drawRect(0,"",[0,0,1000,1000],true,"#ff0000");
  24.                                 circle2.addShape(LShape.VERTICES, [
  25.                                         [0, 0], [247, 0], [247, 607], [0, 607],
  26.                                         [0, 472], [36, 449], [70, 423], [100, 397],
  27.                                         [124, 374], [150, 343], [171, 309], [183, 282],
  28.                                         [187, 265], [189, 252], [189, 224], [188, 212],
  29.                                         [185, 205], [181, 191], [173, 175], [166, 165],
  30.                                         [155, 154], [140, 143], [125, 135], [109, 131],
  31.                                         [68, 132], [48, 137], [24, 152], [0, 175]
  32.                                 ]);
  33.                                 container.addChild(circle2);
  34.                                 container.addChild(circle1);
  35.                                 trace(circle1.hitTestObject(circle2));//应该是没碰上,但是却碰上了
  36.                         }
  37.                         </script>
  38.         </body>
  39. </html>
复制代码
上面是addShape的,刚才是用graphics试了下
回复

使用道具 举报

37

主题

8

好友

9313

积分

诸侯王

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

地板
发表于 2014-11-4 12:04:05 |只看该作者
iq9891 发表于 2014-11-4 11:18
上面是addShape的,刚才是用graphics试了下

把凹多形分割成多个凸多边形试试看
不回答与技术和引擎不相关的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

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

Archiver|lufy's legend

GMT+8, 2024-5-22 04:32 , Processed in 0.046929 second(s), 20 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部