2017-01-17 9 views
-1

私は、UITouchとSpritekitを使用して1本の直線を描画しようとしています。私の指のドラッグ動作中に線が表示され続ける場所。誰かが特定のチュートリアルを知っているか、それを実行する方法で私を走らせることができたら、私は感謝しますスウィフト&スプライトキット画面上で指をドラッグしながら直線を描く

+0

にこれを貼り付け、私は、これはあなたを与えることができるかどうかの問題が修正されていますが、その目的C @Whirlwind –

+0

で書かれたコードの多くを参照してください見つかりました開始:http://stackoverflow.com/a/29359136 – Whirlwind

答えて

0

SpriteKitは2Dゲームエンジンでこれまでに提示された最悪の2D図面です。

実際、最悪です。

SKShapeNodeとそのCGPathはひどいナンセンスです。 SpriteKitの "設計者" が、DirectXやOpenGLのような2D図面の中で最も基本的なものである を一度も見たことがないようです。アニメーターが線や形でしたいことがあるかもしれないもののうち、 の種類だけを考えてみましょう。 作成、突然変異、歪み、進捗、および線アニメーション。

SKSpriteNodesは、単純なボックスになります私の胸の少しオフ暴言が、それは描画スタイルソリューションを期待していないためにあなたの期待を再較正することに無駄を期待して、このことを考慮することを得た〜混乱


それらはX軸とY軸の両方で拡大縮小することができ、タッチの元の位置に対して現在のタッチの方向に向くように回転する「ダミー」SKNodeを親にすることができる。

SO ....最初のタッチの時点からスキニーボックスを描き、タッチが移動すると、作成するSKDummyNodeを親の親となるように回転させることで、その点にSKSpriteNodeをスケーリングできますあなたの "線"をクリックし、原点から現在のタッチ位置までその長さに沿ってスケールアウトします。

Viola、a LINE!

種類の

+0

あなたは何をしたのかの例を追加できますか? –

+0

私は何もしませんでした。ボックスを使って、行を作成する方法を提案しました。 @ DanielAl-Makhamreh – Confused

0

おそらくそれを実装する最良の方法ではありませんが、それは簡単です。ただ、私はこれに正直に新たなんだコピーしてGameScene.swift

import SpriteKit 
import GameplayKit 

class GameScene: SKScene { 

private var line:SKShapeNode = SKShapeNode() 
private var path:CGMutablePath = CGMutablePath() 
private var initialPointSet:Bool = false 

override func didMove(to view: SKView) { 

    line.strokeColor = UIColor.orange 
    line.lineWidth = 4 
    addChild(line) 

} 

func touchMoved(toPoint pos : CGPoint) { 

    if !initialPointSet { 
     path.move(to: pos) 
     initialPointSet = true 
    } 

    path.addLine(to: pos) 
    line.path = path 
} 

override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) { 
    for t in touches { self.touchMoved(toPoint: t.location(in: self)) } 
} 

} 
関連する問題