关于SpriteKit最佳实践的Apples视频之一涵盖了使用批处理来限制绘制调用。然后它以某种方式引用纹理图集,以便您可以同时绘制多个不同的纹理。
有人可以解释我是如何做到这一点的吗?
观看视频:https://developer.apple.com/videos/play/wwdc2014/608/
在演讲中的22:22。
可能需要在20:00 - 23:00之间观看才能全面了解。
如何在1次平局中画出这些直升机?
其他问题。如何在没有代码的情况下获得相同的效果?添加直升机精灵并在sks文件中分配纹理?
答案 0 :(得分:3)
首先,创建纹理图集并将其添加到项目中
通过将以下内容添加到myService.getUserDetails(paramData).then
:
didMove(to view:SKView)
然后为每个部分创建纹理
let atlas = SKTextureAtlas(named: "helicopter")
最后,将直升机与部件组装在一起。每个部分的let body = atlas.textureNamed("body.png")
let rotor = atlas.textureNamed("rotor.png")
let missiles = atlas.textureNamed("missiles.png")
决定了它们的绘制顺序。
zPosition
通过将以下内容添加到GameViewController来显示绘制计数:
let startX:CGFloat = -200
for i in 0...10 {
let helicopterBody = SKSpriteNode(texture: body)
helicopterBody.zPosition = 100
helicopterBody.position = CGPoint(x: startX + CGFloat(i*40), y: 0)
let helicopterRotor = SKSpriteNode(texture: rotor)
helicopterRotor.position = CGPoint(x: startX + CGFloat(i*40), y: 0)
helicopterRotor.zPosition = 200
let helicopterMissiles = SKSpriteNode(texture: missiles)
helicopterMissiles.position = CGPoint(x: startX + CGFloat(i*40), y: 0)
helicopterMissiles.zPosition = 0
addChild(helicopterBody)
addChild(helicopterRotor)
addChild(helicopterMissiles)
}