sprite-kit
SKSpriteNode (Sprites)
Поиск…
Синтаксис
удобство init (imageNamed name: String) // Создайте SKSpriteNode из именованного изображения в каталоге активов
var position: свойство CGPoint // SKNode, унаследованное SKSpriteNode. Положение узла в родительской системе координат.
func addChild (_ node: SKNode) // Метод SKNode, унаследованный SKScene. Используется для добавления SKSpriteNode в сцену (также используется для добавления SKNodes в другие SKNodes).
Добавление спрайта в сцену
В SpriteKit Sprite представлен классом SKSpriteNode
(который наследуется от SKNode
).
Прежде всего создайте новый проект Xcode на основе шаблона SpriteKit, как описано в вашей первой игре SpriteKit .
Создание спрайта
Теперь вы можете создать SKSpriteNode, используя изображение, загруженное в папку Assets.xcassets
.
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)
}
}
Теперь нажмите CMD + R в Xcode, чтобы запустить Simulator.
Подкласс 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)
}
}