Bunu anlayamıyorum. Çok farklı şeyler denedim ve hiçbiri işe yaramadı. Şu anki kodumla, kamera ve kahraman asla hizalanmadı ve ekrana dokunduğumda sahne oldukça uzağa gidiyor gibi görünüyor. Tek yapmak istediğim ekrana dokunduğumda kahramanın dokunma noktasına gelmesi ve kameranın onu takip etmesi. Kamerayı kahraman spritenode kilitlemek için bir yolu var mı?Bir kahramanı takip etmek için SKCameraNode'u kullanın Spritenode
import SpriteKit
let tileMap = JSTileMap(named: "level2.tmx")
let hero = SKSpriteNode(imageNamed: "hero")
let theCamera: SKCameraNode = SKCameraNode()
class GameScene: SKScene {
override func didMoveToView(view: SKView) {
/* Setup your scene here */
self.anchorPoint = CGPoint(x: 0, y: 0)
self.position = CGPoint(x: 0, y: 0)
hero.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
hero.xScale = 0.5
hero.yScale = 0.5
hero.zPosition = 2
tileMap.zPosition = 1
tileMap.position = CGPoint(x: 0, y: 0)
self.addChild(tileMap)
self.addChild(hero)
self.addChild(theCamera)
self.camera = theCamera
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
/* Called when a touch begins */
for touch in touches {
let location = touch.locationInNode(self)
let action = SKAction.moveTo(location, duration: 1)
hero.runAction(action)
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
self.camera?.position = hero.position
}
}
Şunu yapın:
son şey, başında kahramanını kamera hizalamak için bu satırı ekleyin: Üstelik ben
SKAction
kullanarak kamera düğümü hareketli öneririz , "kahraman" dokunduğunuz yere hareket edecek ve kamera "kahramanı" takip edecek/hizalayacaktır. Sonuç olarak, 'kahraman' hala ekranın ortasında görünüyor mu? – WangYudongEvet, tam olarak ne demek istediğimi. – Bill