我正在创建一个游戏,我正在尝试绘制一条跟随我的手指的线条。我正在使用starling graphics axtension,这非常好用,你可以在下面看到我是怎么做的。
if (begin) {
_startPoint = new Point(begin.globalX, begin.globalY);
_line.graphics.lineStyle(1, 0xffffff, 1);
addChild(_line);
} else if (moved) {
var width:Number = MathUtils.DistanceBetweetnTwoPoints(_startPoint.x, _startPoint.y, moved.globalX, moved.globalY);
_currentPoint = new Point(moved.globalX, moved.globalY);
_line.graphics.clear();
_line.graphics.moveTo(_startPoint.x, _startPoint.y);
_line.graphics.lineTo(_currentPoint.x, _currentPoint.y);
} else if (end) {
_line.graphics.clear();
_endPoint = new Point(end.globalX, end.globalY);
addBlock(_startPoint, _endPoint);
}
所以我想做的是以下内容。 Atm瞬间它只是跟随我的手指(从起点到当前点绘制一条线。但我想输入一个最大宽度。让我们说50.如果它超过50的长度它应该只是按照我的手指旋转。所以没有得到不再了,但它确实跟踪我的手指的方向并向它旋转。
最后一件事(虽然我不确定它是否可能)是让线从绿色变为红色,它越接近其最大长度(因此整条线都是绿色但是它变得越红,越接近50)
我不知道如何实现这个目标,如果有人能指出我正确的方向,那就太棒了。
答案 0 :(得分:1)
如果积分足够,那么:
uint(255*lineLength/50)*0x10000+uint(255*(1.0-lineLength/50))*0x100
的一个愚蠢的例子会做一段时间。此处的lineLength
范围为0到50.0。在计算完所有这些之后,你就会像你一样画一条线。
还有一个挑剔:“宽度”一行被命名为“厚度”,在你的例子中为1(在lineStyle
中与颜色一起设置)。