私はSpriteKitで単純なタイルベースのゲームを作っています。私はゲームで高いCPU使用率でいくつかの問題を抱えています。私は60のタイルで作られたマップを持っていて、各タイルはSKSpriteNodeのサブクラスです。シーンにこれらの60のスプライトを表示するだけで、iPhone 6sシミュレータのCPUの最大80%を使用しています。動作、ユーザーのやりとり、または物理的な動作はありません。私がSpriteKitではなくUIKitで同じゲームを作ったとき、私のCPU使用率は0でした。何がCPUを多用しているのでしょうか?SpriteKitのCPU使用率が非常に高い
私のタイルクラス:
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")
}
}
と私のスプライトキットのシーンコード:Xcodeの上
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
申し訳ありません!私はこのサイトの初心者です –