में बहुत उच्च CPU उपयोग मैं स्प्राइटकिट में एक साधारण टाइल-आधारित गेम बना रहा हूं और मुझे अपने गेम में उच्च CPU उपयोग के साथ कुछ कठिनाई हो रही है। मेरे पास 60 टाइल्स से बना नक्शा है, और प्रत्येक टाइल SKSpriteNode का उप-वर्ग है। दृश्य में इन 60 स्प्राइट्स को प्रदर्शित करना आईफोन 6 एस सिम्युलेटर में 80% सीपीयू का उपयोग कर रहा है। कोई गति, उपयोगकर्ता बातचीत, या भौतिकी चल रहा है। जब मैंने UIKit में एक ही गेम बनाया और स्प्राइटकिट नहीं किया तो मेरा सीपीयू उपयोग 0 था। इतना सीपीयू का उपयोग क्या हो सकता है?स्प्राइटकिट
मेरी टाइल वर्ग:
import SpriteKit
import UIKit
class Tile: SKSpriteNode {
var tileType = "grass", tileX = 0, tileY = 0
init (tileType: String, tileX: Int, tileY: Int) {
self.tileType = tileType
self.tileX = tileX
self.tileY = tileY
let texture = SKTexture(imageNamed: tileType)
super.init(texture: texture, color: UIColor(), size: texture.size())
self.userInteractionEnabled = true
self.position = CGPoint(x: CGFloat(45+64*(tileX-1)), y: CGFloat(47+56*(tileY-1)))
self.zPosition = -1
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
और मेरे स्प्राइट किट दृश्य कोड:
import SpriteKit
var map: [[String]] = [["grass","water","grass","rocky","rocky","grass","grass","grass","grass","water"],["grass","water","grass","grass","rocky","rocky","grass","grass","water","water"],["grass","water","water","grass","rocky","grass","grass","water","water","water"],["grass","grass","water","rocky","rocky","grass","grass","water","water","water"],["grass","grass","water","rocky","rocky","grass","water","water","water","water"],["grass","grass","water","rocky","rocky","grass","water","water","water","water"] ]
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
for (rowNumber, row) in map.enumerate() {
for (columnNumber, type) in row.enumerate() {
let theTile = Tile(tileType: type, tileX: columnNumber+1, tileY: rowNumber+1)
self.addChild(theTile)
}
}
self.backgroundColor = UIColor(colorLiteralRed: 0, green: 0, blue: 0, alpha: 0)
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
धन्यवाद! असली फोन पर 10% तक। –
@ATyshka अगर इस उत्तर में आपकी समस्या हल हो गई है तो आपको इसे [स्वीकृत] (http://stackoverflow.com/help/accepted-answer) के रूप में चिह्नित करना चाहिए। – Whirlwind
क्षमा करें! मैं इस साइट पर नया हूं –