46

Sprite-kit でどのように線を引くことができますか? たとえば、cocos2d で線を描きたい場合は、 ccDrawLine();

スプライトキットに同等のものはありますか?

4

7 に答える 7

11

を使用SKShapeNodeして、これを行うことができました。

// enter code here
SKShapeNode *line = [SKShapeNode node];

CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 50.0, 40.0);
CGPathAddLineToPoint(path, NULL, 120.0, 400.0);

line.path = path;
[line setStrokeColor:[UIColor whiteColor]];

[self addChild:line];
于 2013-09-30T10:46:31.817 に答える
8

線のみが必要な場合は、人々が線にUIViewを使用する方法(のみ)の場合、単に使用できますSKSpriteNode

SKSpriteNode* line = [SKSpriteNode spriteNodeWithColor:[SKColor blackColor] size:CGSizeMake(160.0, 2.0)];
[line setPosition:CGPointMake(136.0, 50.0))];
[self addChild:line];
于 2013-10-29T02:50:44.927 に答える
6

SWIFT での同等のコードは次のとおりです。

    let pathToDraw:CGMutablePathRef = CGPathCreateMutable()
    let myLine:SKShapeNode = SKShapeNode(path:pathToDraw)

    CGPathMoveToPoint(pathToDraw, nil, 100.0, 100)
    CGPathAddLineToPoint(pathToDraw, nil, 50, 50)

    myLine.path = pathToDraw
    myLine.strokeColor = SKColor.redColor()

    self.addChild(myLine)

@Rajneesh071 の目的の C コード サンプルに変換されます。

于 2015-05-21T20:00:05.673 に答える
5

xCode / OS X / Game (別名SpriteKit) / Applicationの例の各mouseDownに線を引こうとしているときに、この投稿を見つけました。

このコードをコピーして GameScene.swift に貼り付けることができます。ユーザーによるマウスダウン イベントごとに線を引く必要があります。「スケッチ」スタイルに見えます。

ここに画像の説明を入力

import SpriteKit

var lastPoint: CGPoint = CGPoint(x: 0.0, y: 0.0)
var newPoint: CGPoint = CGPoint(x: 100.0, y: 100.0)


class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        self.backgroundColor = SKColor.blackColor()
        let myLabel = SKLabelNode(fontNamed:"default")
        myLabel.text = "SKSpriteNode Draw Lines";
        myLabel.fontSize = 15;
        myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));

        self.addChild(myLabel)
    }

    override func mouseDown(theEvent: NSEvent) {
        /* Called when a mouse click occurs */

        let location = theEvent.locationInNode(self)
        newPoint = location

        let pathToDraw:CGMutablePathRef = CGPathCreateMutable()
        let myLine:SKShapeNode = SKShapeNode(path:pathToDraw)


        CGPathMoveToPoint(pathToDraw, nil, lastPoint.x, lastPoint.y)
        CGPathAddLineToPoint(pathToDraw, nil, newPoint.x, newPoint.y)
        lastPoint = newPoint

        myLine.path = pathToDraw
        myLine.strokeColor = SKColor.whiteColor()

        self.addChild(myLine)
    }
}

初心者のために、これは私の xCode プロジェクトがどのように見えるかです: ここに画像の説明を入力

ほんの一握りiOSの人々向け。サンプルiOS / ゲーム (別名 SpriteKit) / アプリケーションのデフォルト プロジェクト のtouchBeganに移植された上記と同じコード。ここに画像の説明を入力

このコードを GameScene.swift ファイルに入れます

import SpriteKit

var lastPoint: CGPoint = CGPoint(x: 0.0, y: 0.0)
var newPoint: CGPoint = CGPoint(x: 100.0, y: 100.0)


class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        self.backgroundColor = SKColor.blackColor()
        let myLabel = SKLabelNode(fontNamed:"default")
        myLabel.text = "SKSpriteNode Draw Lines";
        myLabel.fontSize = 15;
        myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame));

        self.addChild(myLabel)
    }


override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
    /* Called when a touch begins */

    for touch in (touches as! Set<UITouch>) {
        let location = touch.locationInNode(self)

        newPoint = location

        let pathToDraw:CGMutablePathRef = CGPathCreateMutable()
        let myLine:SKShapeNode = SKShapeNode(path:pathToDraw)


        CGPathMoveToPoint(pathToDraw, nil, lastPoint.x, lastPoint.y)
        CGPathAddLineToPoint(pathToDraw, nil, newPoint.x, newPoint.y)
        lastPoint = newPoint

        myLine.path = pathToDraw
        myLine.strokeColor = SKColor.whiteColor()
        self.addChild(myLine)
   }}}

ひまわりの描画

楽しみ。

于 2015-08-11T15:14:28.010 に答える