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フォーラムで、2つのポイントを接続するいくつかの四角形を描画するLineクラスを作成することを提案した人がいます。このチュートリアルでは、シェーダーにAGALを使用してポリゴンを作成する方法を示します。
http://wiki.starling-framework.org/manual/custom_display_objects
于 2012-05-16T15:30:10.853 に答える
1
最近、Stage3D で線を描画するための簡単なライブラリを作成しました。
それはゼブロイドと呼ばれます、https://github.com/luwes/Zebroid
Zebroid はまだライン キャップまたはジョイントをサポートしていません。
于 2012-05-21T07:15:08.610 に答える