我试图围绕一个点制作2个圆圈并在这些点之间填充并听取圆圈之间的点击

时间:2013-10-17 21:32:43

标签: actionscript-3 geometry addeventlistener

我正在尝试为我正在制作的游戏制作一些东西。当有人点击动画片段时我想要它画一个内圈和一个外圈。我想用不透明的颜色(图像中的紫色)填充圆圈之间,这样人们就可以在影片剪辑周围看到一个很大的粗圆,但是没有接触到影片剪辑。然后我需要检查鼠标点击是否仅在两个圆圈之间发生。

下图显示了我的意思。事情是紫色位的厚度必须是可调的(不是在游戏中这样),如果你点击1个动画片段,紫色位的厚度可能是10像素,不同的片段可能是50.显然检查点击更大比内圈x和小于外圈只能在夹子的一条直线上工作,一旦你向上或向下移动,这不会很好。任何帮助都非常感谢,因为我似乎无法解决这个问题。我尝试绘制2个圆圈,并尝试使用2个影片剪辑圈,但无法使其工作。

似乎我无法在这里上传图片。最简单的方法是在没有/ line穿过中间的情况下想到一个没有进入的标志。中心是动画片段,红色圆圈的内侧部分是内圈,外圈是外圈,但红色触摸动画片段时没有任何一点

1 个答案:

答案 0 :(得分:2)

我会测量从圆心到鼠标点击的距离。然后你只需要检查那个距离大于内圆半径并小于外圆半径的距离。

这些方面的东西:

var clickPoint:Point = new Point(mouseX, mouseY);
var centerPoint:Point = new Point(circleMC.x circleMC.y);
var dist:Number = Point.distance(clickPoint, centerPoint);

if(dist > innerRadius && dist < outerRadius){
    trace("the click happened between circles
}