수색…


통사론

  • 편의 init (imageNamed name : String) // assets 카탈로그의 명명 된 이미지에서 SKSpriteNode 만들기

  • var position : CGPoint // SKNode 속성, SKSpriteNode에 상속 됨. 부모 좌표계에서 노드의 위치입니다.

  • func addChild (_ node : SKNode) // SKScene이 상속 한 SKNode 메서드입니다. 장면에 SKSpriteNode를 추가하는 데 사용됩니다. 또한 SKNode를 다른 SKNode에 추가하는 데 사용됩니다.

장면에 스프라이트 추가하기

SpriteKit에서 스프라이트는 SKSpriteNode 클래스 ( SKNode 에서 상속)로 SKNode 됩니다.

먼저 SpriteKit 첫 번째 게임 에서 설명한대로 SpriteKit 템플릿을 기반으로 새로운 Xcode 프로젝트를 만듭니다.

스프라이트 만들기

이제 Assets.xcassets 폴더에로드 된 이미지를 사용하여 SKSpriteNode를 만들 수 있습니다.

let spaceship = SKSpriteNode(imageNamed: "Spaceship")

Spaceship 은 Assets.xcassets에 대한 이미지 항목의 이름입니다.

스프라이트가 생성 된 후 장면 (또는 다른 노드)에 추가 할 수 있습니다.

GameScene.swift 열고 내용을 모두 제거한 후 다음을 추가하십시오

class GameScene: SKScene {
    override func didMoveToView(view: SKView) {
        let enemy = SKSpriteNode(imageNamed: "Spaceship")
        enemy.position = CGPoint(x:self.frame.midX, y:self.frame.midY)
        self.addChild(enemy)
    }
}

Xcode에서 CMD + R 을 눌러 시뮬레이터를 시작하십시오.

여기에 이미지 설명을 입력하십시오.

SKSpriteNode 서브 클래 싱

SKSpriteNode 하위 클래스를 SKSpriteNode 자신 만의 스프라이트 유형을 정의 할 수 있습니다.

class Hero: SKSpriteNode {
    //Use a convenience init when you want to hard code values
    convenience init() {
        let texture = SKTexture(imageNamed: "Hero")
        self.init(texture: texture, color: .clearColor(), size: texture.size())
    }

    //We need to override this to allow for class to work in SpriteKit Scene Builder
    required init?(coder aDecoder: NSCoder) {
        super.init(coder:aDecoder)
    }

    //Override this to allow Hero to have access all convenience init methods
    override init(texture: SKTexture?, color: UIColor, size: CGSize) 
    {
        super.init(texture: texture, color: color, size: size)
    }
}


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow