如何使用Agal在Stage3D中的位图上绘制直线?有人能提供一个代码示例吗?
发布于 2012-05-21 15:15:09
发布于 2012-05-16 23:30:11
如果你使用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
https://stackoverflow.com/questions/10388458
复制相似问题