lufy's legend

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

扇形点击范围

[复制链接]

8

主题

0

好友

98

积分

士兵

Rank: 1

跳转到指定楼层
楼主
发表于 2016-5-22 04:17:26 |只看该作者 |倒序浏览
想做扇形点击,可是发现它是以整个圆形作范围的。
回复

使用道具 举报

37

主题

8

好友

9310

积分

诸侯王

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

沙发
发表于 2016-5-22 07:16:56 |只看该作者
不回答与技术和引擎不相关的问题
回复

使用道具 举报

8

主题

0

好友

98

积分

士兵

Rank: 1

板凳
发表于 2016-5-22 20:42:46 |只看该作者
是的,扇形是有了,但是用它(Lsprite)做点击、碰撞检测等等,范围都是整个圆。
最后用drawVertices去画近似的形状凑合过了。
回复

使用道具 举报

37

主题

8

好友

9310

积分

诸侯王

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

地板
发表于 2016-5-23 08:44:06 |只看该作者
matthew 发表于 2016-5-22 20:42
是的,扇形是有了,但是用它(Lsprite)做点击、碰撞检测等等,范围都是整个圆。
最后用drawVertices去画近 ...

啊,是点击范围啊,怪我没看清楚问题了
这个确实不太友好,下次更新我会稍微调整一下的
不回答与技术和引擎不相关的问题
回复

使用道具 举报

7

主题

0

好友

189

积分

士兵

Rank: 1

5#
发表于 2018-3-19 16:32:30 |只看该作者
lufy 发表于 2016-5-23 08:44
啊,是点击范围啊,怪我没看清楚问题了
这个确实不太友好,下次更新我会稍微调整一下的 ...

一个圆中有很多扇形,我想要给每个扇形添加mouseover和mouseout事件,扇形是循环画出来的,我在循环里给每个扇形绑定事件似乎不行,有什么办法吗?
回复

使用道具 举报

37

主题

8

好友

9310

积分

诸侯王

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

6#
发表于 2018-3-19 20:07:31 |只看该作者
zb0819 发表于 2018-3-19 16:32
一个圆中有很多扇形,我想要给每个扇形添加mouseover和mouseout事件,扇形是循环画出来的,我在循环里给 ...

现在的扇形点击范围有点问题,现在就是整个圆的点击范围
所以,没办法简单的完成你想要的效果,只能自己根据点击的位置,自己写个算法看看是不是在每个扇形的区域内了
不回答与技术和引擎不相关的问题
回复

使用道具 举报

7

主题

0

好友

189

积分

士兵

Rank: 1

7#
发表于 2018-3-20 10:11:05 |只看该作者
lufy 发表于 2018-3-19 20:07
现在的扇形点击范围有点问题,现在就是整个圆的点击范围
所以,没办法简单的完成你想要的效果,只能自己 ...

大神帮我看一下这段代码,我想要给画出来的扇形循环添加mouseover 和 mouseout事件,获取每个nArrow的setColor,这样循环绑定事件获取到的一直是最后一个setColor,是什么原因呢?
var rainbow = new LSprite();
    element.addChild(rainbow);
    if(info.rainbowArray.length > 0){
      for(var i = 0; i < info.rainbowArray.length; i++) {
        var nArrow = new LSprite();
        rainbow.addChild(nArrow);
        nArrow.setColor = info.rainbowArray;
        var l = info.rainbowArray.length;
        var averageAngle = 180 / l;
        var sAngle = i * averageAngle / 180 - 1/2;
        var eAngle = (i+1) / l - 1/2;
        if(i == 0) {
          sAngle = -1;
        }
        if(i == info.rainbowArray.length - 1) {
          eAngle = 1;
        }
        nArrow.graphics.drawArc(0, '#fff', [100, 50, 36, sAngle*Math.PI, eAngle*Math.PI, false, true], true, info.rainbowArray);
        rainbow.visible = false;
        nArrow.addEventListener(LMouseEvent.MOUSE_OVER, wf.mouseRainBowOver);
        nArrow.addEventListener(LMouseEvent.MOUSE_OUT, wf.mouseRainBowOut);
      }
    }

回复

使用道具 举报

37

主题

8

好友

9310

积分

诸侯王

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

8#
发表于 2018-3-20 20:54:18 |只看该作者
zb0819 发表于 2018-3-20 10:11
大神帮我看一下这段代码,我想要给画出来的扇形循环添加mouseover 和 mouseout事件,获取每个nArrow的set ...

nArrow.setColor = info.rainbowArray;
这不是所有的都一样了吗
不回答与技术和引擎不相关的问题
回复

使用道具 举报

7

主题

0

好友

189

积分

士兵

Rank: 1

9#
发表于 2018-3-21 10:14:20 |只看该作者
lufy 发表于 2018-3-20 20:54
nArrow.setColor = info.rainbowArray;
这不是所有的都一样了吗

不是的,可能是复制少了   nArrow.setColor = info.rainbowArray【i】;
中括号不显示
回复

使用道具 举报

37

主题

8

好友

9310

积分

诸侯王

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

10#
发表于 2018-3-21 17:01:32 |只看该作者
zb0819 发表于 2018-3-21 10:14
不是的,可能是复制少了   nArrow.setColor = info.rainbowArray【i】;
中括号不显示 ...

setColor在哪用的,你代码里也没有体现,原因没法找啊
不回答与技术和引擎不相关的问题
回复

使用道具 举报

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

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

Archiver|lufy's legend

GMT+8, 2024-4-26 05:57 , Processed in 0.055649 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部