作爲@NicolasSiver在使用ENTER_FRAME
時提到的絕對是執行此類任務時的一種選擇。 @Chadyk提到你的曲線看起來像是正弦曲線。所以一個方法,你可以實現這對於一些靈活的調整:
設置一些變量,因此你可以調整之類的東西,半徑,位置和曲線的大小:
private var origin:Point;
private var degree:int;
private var curveSize:int = 25; //radius
private var curveLength:int = 200;
然後用ENTER_FRAME
設置它:
//set the origin to whatever you like, i'm choosing the center from the center of the curve
origin = new Point(stage.stageWidth/2 - curveLength/2, stage.stageHeight/2);
//create our sprite
sprite = new Sprite();
sprite.graphics.lineStyle(2, 0xFF0000);
sprite.graphics.moveTo(origin.x, origin.y);
addChild(sprite);
//add the listener
addEventListener(Event.ENTER_FRAME, drawCurve);
然後,它是相當簡單的,我們將遞增度/旋轉,運用基本的三角函數求解y位置,並利用我們的起源,因爲它沿x軸移動:
如果您不介意,我想給您提示:對於動畫,您需要時間和計時器或ENTER_FRAME。對於複雜曲線,您需要2個移動點作爲開始和結束,規則來預定義路徑(例如Bezier),以及一堆幫助方法來查找路徑上的點。 –
像示例圖像中的線條一樣的線條正弦曲線!你不能用這個來得到你的觀點嗎? ;) – chadiik