如何使用 Agal 在 Stage3D 中的位图上绘制一条线?有人可以提供代码示例吗?
问问题
1994 次
2 回答
2
如果你使用 Starling,你可以试试这个:
/**
* Class Line
* @author Leandro Barreto 2012
* @version 1.0
**/
package starling.utils
{
import starling.display.Quad;
import starling.display.Sprite;
public class Line extends Sprite
{
private var baseQuad:Quad;
private var _thickness:Number = 1;
private var _color:uint = 0x000000;
public function Line()
{
baseQuad = new Quad(1, _thickness, _color);
addChild(baseQuad);
}
public function lineTo(toX:int, toY:int):void
{
baseQuad.width = Math.round(Math.sqrt((toX*toX)+(toY*toY)));
baseQuad.rotation = Math.atan2(toY, toX);
}
public function set thickness(t:Number):void
{
var currentRotation:Number = baseQuad.rotation;
baseQuad.rotation = 0;
baseQuad.height = _thickness = t;
baseQuad.rotation = currentRotation;
}
public function get thickness():Number
{
return _thickness;
}
public function set color(c:uint):void
{
baseQuad.color = _color = c;
}
public function get color():uint
{
return _color;
}
}
}
有人在 Starling 论坛上建议我们创建一个 Line 类,它绘制几个连接两点的四边形。本教程展示了如何使用 AGAL 为着色器创建多边形:
http://wiki.starling-framework.org/manual/custom_display_objects
于 2012-05-16T15:30:10.853 回答
1
我最近写了一个简单的库来在 Stage3D 上画线。
它被称为 Zebroid,https://github.com/luwes/Zebroid
Zebroid 还不支持线帽或接头。
于 2012-05-21T07:15:08.610 回答