2016-04-08 15 views
1

Swift2'de SpriteKit kullanarak bir IOS Chess uygulaması geliştiriyorum. Bilgisayar oyununa karşı oyun oynarken bilgisayar düşüncesi bitene kadar insan hareketleri görüntülenmez. Bilgisayar düşüncesi bittikten sonra, her ikisi de (insan hareketleri ve bilgisayar hareketleri) birlikte görüntülenir.Satranç - iOS - SpriteKit - Bilgisayar düşüncesi bitene kadar insan hareketleri görüntülenmiyor

Beklenen işlevler: İnsan harekete başladığı zaman, hareket ekranda gösterilmelidir. Sadece insan hareketini gösterdikten sonra bilgisayar düşüncesi başlamalıdır.

Başlangıçta touchesBegan fonksiyon içindeki bilgisayar düşünme mantığına telefon geldi. Beklendiği gibi çalışmadı. Sonra aramayı dokunuşlarıEnded işlevine taşıdım. Sorun devam etti. Şimdi aramayı güncelleştirmesi işlevine yerleştirdim. Sorun hala devam ediyor.

Bu sorunun cevabını bulamadım. Buna hitap edecek bir şey var mı?

sayesinde ArtBajji sorunu "bilgisayar" çabuk bir insan taşındıktan sonra, kendi touchesEnded uygulanan bir dispatch_after blok kullanabilirsiniz tepki olduğunu ise

+0

SpriteKit, zamanla ilgili eylemler için iki onaylı yol sunar. SKAction ve update: currentTime geçirme parametresiyle yöntem. Ayrıca Swift'deki tamamlama işleyicilerini kolayca uygulayabilirsiniz. Tüm bu ile, Oyuncu hareket animasyonu bittikten sonra Bilgisayar hareketini kolayca çalıştırabilirsiniz. SK işlem sırasının ve tamamlama işleyicilerinin nasıl kullanılacağı hakkında SO ara. – Whirlwind

+0

Teşekkürler. Önerdiğiniz gibi, SKAction, Özel kuyruk uygulamalarını ve işlem tamamlama işleyicisini kullanarak bu gereksinimi uygulamanızda çözdüm. – ArtBajji

cevap

0

.

let delay = 0  //time in seconds 
dispatch_after(delay, dispatch_get_main_queue()) { 
    //computer starts thinking 
} 
+0

Cevabınız için teşekkürler. Ne yazık ki, başka bir yoldur. Bilgisayar düşüncesi 30 saniyeden fazla sürüyor. Bilgisayar düşüncesi bitene kadar, bilgisayar düşüncesinden önce oynanan insan hareketi ekranda görüntülenmiyor. İhtiyaç, insan hareketini göstermek ve sonra bilgisayar düşüncesini başlatmaktır. – ArtBajji

İlgili konular