簡體   English   中英

精靈套件 - SKShapeNode路徑不繪制四線曲線

[英]Sprite Kit - SKShapeNode Path not drawing Quad Curve

我一直在鑽研Apple的新Sprite Kit,並且已經使用了一段時間了。 但是,當我嘗試為SKShapeNode繪制彎曲路徑時,我遇到了一個問題。 它似乎只是繪制一條直線。

這里是我遇到的問題的一個非常簡單的例子-與繪制實驗CGPathSKShapeNode

    CGMutablePathRef path = CGPathCreateMutable();
    CGPathMoveToPoint(path, NULL, 0, 0);
    CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0);
    CGPathAddLineToPoint(path, NULL, 50, -100);
    CGPathCloseSubpath(path);

    SKShapeNode *shape = [[SKShapeNode alloc]init];
    shape.path = path;

    [self addChild:shape];

    CGPathRelease(path);

這是我的ASCII藝術,它正在做什么(抱歉,我沒有足夠的聲譽發布實際圖像):

---------------------------------------------------------------------------------
|          EXPECTED RESULT              |            ACTUAL RESULT              |
---------------------------------------------------------------------------------
|                                       |                                       |
|             __----__                  |                                       |
|            /        \  <- Curve       |                ?                      |
|           /          \                |           ____________                |
|           \          /                |           \          /                |
|            \        /                 |            \        /                 |
|             \      /                  |             \      /                  |
|              \    /                   |              \    /                   |
|               \  /                    |               \  /                    |
|                \/                     |                \/                     |
---------------------------------------------------------------------------------

如您所見,它不是從這行代碼中繪制出我想要的曲線:

CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 0);

我嘗試過使用CGPathAddArcToPoint(...) ,它在這個例子中是一個很好的替代品。 但是,根據我的實際需要,我需要能夠繪制四邊形曲線。

該CGPath似乎從適當分開繪制的一切CGPathAddQuadCurveToPoint(...)也, CGPathAddCurveToPoint(...) -他們只是得出兩點之間的直線來代替。

有誰知道問題是什么? 或者這是Sprite Kit的錯誤?

“y”應該是曲線的高度,嘗試給它一個非零值。 通過給出一個坐標,它無法知道曲線應該有多陡峭。 這就是高度

CGPathAddQuadCurveToPoint(path, NULL, 50, 100, 100, 30);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM