通过调整一个点,你将有一个长方形......
您可以动态创建一个覆盖船舶和的moveTo一艘船的命中点,则了lineTo其他船精灵...你根本不需要距离计算。你所要做的就是小心地放置精灵。这样你就可以用简单的数学来计算相对的点数。
假设你有MC 空间 contining MC SHIP1和MC SHIP2,并击中点COORDS船舶被命名为HX,HY,你会使用精灵小号,计算应为如下。
// calculate hit points relative to mc space
var s1HX:int = ship1.x + ship1.hx,
s1HY:int = ship1.y + ship1.hy,
s2HX:int = ship2.x + ship2.hx,
s2HY:int = ship2.y + ship2.hy,
// sprite relative moveTo lineTo coords will be these.
mX: int, mY: int,
lX: int, lY: int;
// top left of sprite will be minimum of the hit coords.
s.x = (s1HX <= s2HX)? s1HX : s2HX;
s.y = (s1HY <= s2HY)? s1HY : s2HY;
// now we can get sprite relative moveTo lineTo coordinates:
mX = s1HX - s.x;
mY = s1HY - s.y;
lX = s2HX - s.x;
lY = s2HY - s.y;
剩下的就是使用这些花哨的线条样式等实现...
要创建一个新的sprite:
var s:Sprite = new Sprite();
添加/从MC空间移除到/:
space.addChild(s);
space.removeChild(s);
对于图形使用精灵的图形对象。
s.graphics
用于设置线条样式,你可以使用:
s.graphics.lineStyle(...) ,
s.graphics.lineBitmapStyle(...),
s.graphics.lineGradientStyle(...)
功能,请阅读使用说明书。
s.graphics.moveTo(mX,mY);
s.graphics.lineTo(lX,lY);
对于你必须做一些更复杂的东西脉动的影响,如使用吐温类,你可以读到这里:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/transitions/Tween.html
设置线条样式画线使用后
请注意: 精灵并不是复杂的魔法,它们就像MC,但他们没有时间轴等。
精灵在宽度或高度以编程方式更改时尝试缩放。所以不要碰他们,moveTo lineTo自动设置精灵的大小...
对不起,但因为我是新来的闪光我不明白你的答案。谢谢强硬!什么是hx? x相对于“母亲mc”?我无法访问任何名为mc.hx的属性。当我尝试它时,我尝试使用sp.graphics.moveTo(mx,my)和sp.graphics(lx,lx),但它似乎不起作用。是否有可能添加一些周围的代码?我从来没有工作过精灵。另外我希望光束能够脉动/动画 - 这可以通过你的方式吗?希望这是我的无知,而不是不尊重。再次感谢 – user2237931 2013-04-05 22:53:13
我的意思是,当我尝试它时,我跳过+ hx。我的MC在同一坐标系上,但可能我误解了一些东西 – user2237931 2013-04-05 23:00:51
hx和hy是船上虚构点的x,y坐标。所以他们是相对于船舶的起源。我以为你会想从他们的同一点击中船只,而不是始终。而且我不知道你是如何设置坐标系的船舶和空间原点的。我更喜欢他们在左上角,有些人更喜欢中锋。由于我不知道如何组织你的代码和类,所以我很难推断出一个适合它的例子。但我会给我的答案添加提示。 – Ihsan 2013-04-06 10:44:29