SKShapeNode
のが動作していません。コードが実行されず、コンソールが「Snake is moving」をログしていてもノードは動いていません。なぜなら、ノードはSKSceneのプロパティであり、アクションはスコープ関数の一部であるからです。SKActionがSKSpriteNodeで実行されていません
class LevelScene: SKScene, SnakeShower {
var snake: Snake {
let theSnake = Snake(inWorld: self.size)
return theSnake
}
override func didMove(to view: SKView) {
self.backgroundColor = .green
snake.delegate = self
}
var myNode: SKShapeNode {
let node = SKShapeNode(rectOf: snake.componentSize)
node.position = snake.head
node.fillColor = .red
return node
}
func presentSnake() { // function called by the snake in the delegate (self)
self.addChild(myNode)
startMoving()
}
func startMoving() {
print("snake is moving")
myNode.run(SKAction.repeatForever(SKAction.sequence([
SKAction.move(by: self.snake.direction.getVector(), duration: 0.2),
SKAction.run({
if self.myNode.position.y > (self.size.height/2 - self.snake.componentSize.height/2) {
self.myNode.removeAllActions()
}
})
])))
}
}
アクション
あなたが何を意味するかは、 '動作しない' - 正確に何が起こりますか? –
@SteveIves Edited。 – Fayyouz
'selfVnake.direction.getVector()'を 'CGVector(dx:200、dy:200)'に変更して 'getVector()'が問題になっているかどうかを確認します。 –