2015-08-18 21 views
8

SpriteKit'te büyük bir "dünya" olan bir oyun yapıyorum ve kullanıcının SKScene'u yakınlaştırma ve uzaklaştırma seçeneğine ihtiyacım varsa, bunu nasıl yaparım? Veya, didMoveToView işlevinde işleri daha basit hale getirmek için, kullanıcının cihaz ekranına dünyanın daha fazlasını nasıl sunabilirim (world.runAction(SKAction.scaleTo(0.5)) veya bir şey kullanmadan)?SpriteKit- SKScene nasıl büyütülür ve uzaklaştırılır?

+1

dünyanın 'scale' özelliğini ayarlayarak nesi var? IOS 9'u hedefliyorsanız, bir [SKCameraNode] ekleyebilirsiniz (https://developer.apple.com/library/prerelease/ios/documentation/SpriteKit/Reference/SKCameraNode/). – 0x141E

cevap

-2

Bulabildiğim en iyi çözüm böyle bir şey. didMoveToView işlevinde, Dünya adlı bir SKSpriteNode oluşturun ve dünyanın istediğiniz büyüklükte olmasını sağlayın. Ardından,% 50 yakınlaştırma yapmak istiyorsanız world.setScale(0.5) yazın. Ancak, her zaman ekranda ortalanmış bir oyuncu düğmeniz varsa, update işlevinize aşağıdakileri eklemeniz gerekir.

override func update(currentTime: CFTimeInterval) { 
    world.position.x = -player.position.x * (0.5) 
    world.position.y = -player.position.y * (0.5) 
} 
24

Bunun için özel olarak tasarlanmış bir SKCameraNode var. SKCameraNode, görüntü alanını sahnesine tanımlar. Bir kamera düğümü oluşturur ve onu sahnenin kamera özelliğine atarsınız. Daha sonra eylemler oluşturabilir ve bu eylemleri kamerada çalıştırabilirsiniz. Yani sahneye zum yapmak için bunu yaparsın.

let zoomInAction = SKAction.scaleTo(0.5, duration: 1) 
    cameraNode.runAction(zoomInAction) 

cameraNode temelde sahnede bir kare düğüm ben varsayılan olarak görüş oranlarını alır düşünüyorum, nedir? Cuz, boyut başlatıcısı yok. Yani küçüldüğünde, sahne yakınlaştırılmış gibi görünüyor. Uzaklaştırmak için ölçeği artıran bir işlem yaparsınız. Temel olarak, tüm sahnedeki bir dikdörtgeni hayal edin ve cameraNode'un dikdörtgendeki her şey, iPhone ekranınızda doğrudan gösterilir. Ayrıca moveTo eylemleri ve sekans eylemleri ekleyebilir ve normal spriteNode'unuzla aynı eylemlerdeki zamanlamaModlarını ayarlayabilirsiniz.

İşte Apple'ın söylediklerimi gösterdiği yerde WWDC. CameraNode bit, bitmeden yaklaşık 3 dakikadır.

https://developer.apple.com/videos/play/wwdc2015-604/

+2

Bu gerçekten kabul edilen cevap olmalı –

İlgili konular