Non riesco a capirlo. Ho provato molte cose diverse e nessuna sembra funzionare. Con il mio codice attuale, la telecamera e l'eroe non si allineano mai e la scena sembra saltare molto lontano quando tocco lo schermo. Tutto quello che voglio fare è che quando tocco lo schermo, l'eroe si muove verso il punto di contatto e la telecamera lo segue. C'è un modo per bloccare la fotocamera allo spritenode dell'eroe?Ottieni SKCameraNode per seguire un eroe 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
}
}
intendi quando si tocca lo schermo , l'eroe si sposterà nella posizione in cui è stato toccato e la 'camera' seguirà/allineerà l'eroe'. Di conseguenza, l'eroe ora appare ancora al centro dello schermo? – WangYudong
Sì, è esattamente ciò che intendo. – Bill