İlk Swift uygulamasını Sprite Kit'i kullanarak yapmaya çalışıyorum. Uygulama, ekran boyunca rastgele hareket etmesi gereken en fazla 5 nesne oluşturmalıdır. Hız artar ve boyutu her 5 saniyede bir azalır. Sahne doğru şekilde kurulur, nesneler görünür ve hareket eder ancak bir süre sonra CPU kullanımı% 100 olur, FPS 0'a düşer ve uygulama kapanır. Bazen birkaç saniye çalışmaya devam eder, bazen olmaz. Nedeni nedir?Sprite Kit uygulaması,
Sadece Xcode'ta noob var - Simülasyon sırasında şu anda hangi kod bloğunun çalıştığını bulmak mümkün mü?
Güncelleştirme işlevi. didMoveToView
ve touchesBegan
bölümlerini dahil etmedim, çünkü bu problemi etkilemiyorlar.
override func update(currentTime: CFTimeInterval) {
if (currentTime-oldTime)>1 {
if arrayofAims.isEmpty==false {
for currentAim in arrayofAims {
repeat {xvelocity=(Int(arc4random())%3 - 1) * aimSpeedX} while xvelocity == 0
repeat {yvelocity=(Int(arc4random())%3 - 1) * aimSpeedX} while yvelocity == 0
currentAim.physicsBody?.applyForce(CGVectorMake (CGFloat(xvelocity), CGFloat(yvelocity)))
}
}
oldTime=currentTime
timecount+=1
}
if timecount>5 {
if aimSpeedX < 5000 {
aimSpeedX+=200
}
if aimSizeRatioX > 0.3 {
aimSizeRatioX -= 0.05
aimSizeRatioY -= 0.05
}
timecount=0
if arrayofAims.count<6 { arrayofAims.append(createAnAim())
currentAim=arrayofAims[arrayofAims.count-1]
addChild(currentAim)
}
}
}
Welcome etkileşim yok! Lütfen [ask] bölümünü okuyun. BTW, henüz kimse cevap vermedi, bu yüzden kime teşekkür ediyorsun? –
Çoğu ilkel hata ayıklama yöntemi olarak, sorunu yalıtmak için kod bölümlerini kaldırmaya çalışın. Yani 'addChild (currentAim)' satırını kaldırarak başlayın ve sorunun devam edip etmediğini görmek için bekleyin. Güncelleme yönteminin sorumlu olduğundan emin misiniz? Çizim sayısı ('skView.showsDrawsCount') ve düğüm sayısı (' skView.showsNodesCount') göstermek için hata ayıklama etiketlerini etkinleştirin. Uygulama takıldığında ne numaraları görüyorsunuz? – Whirlwind
Ya da yaşadığınız soruyu çoğaltabilecek (veya bir github repo'yu bile yükleyebilecek) asgari bir örnekle sorunuzu güncelleyin. – Whirlwind