我在地板上每1秒生成一个SKSpriteNode。有时它结束了,有时它在它之下。 SpriteNode是一个图像,我希望它在地板下翻转时翻转。我试过了
SKAction.scaleYto(scale, duration: 0.1
但它不起作用! 这是代码
func startGeneratingWallsEvery(seconds: NSTimeInterval) {
generationTimer = NSTimer.scheduledTimerWithTimeInterval(seconds, target: self, selector: "generateWall", userInfo: nil, repeats: true)
}
func stopGenerating() {
generationTimer?.invalidate()
}
func generateWall(){
var scale: CGFloat
let wall = ADWall()
let rand = arc4random_uniform(2)
if rand == 0 {
scale = -1.0
} else {
scale = 1.0
}
//let translate1 = SKAction.moveByX(0, y: scale*(wall.size.height), duration: 0.1)
let flip = SKAction.scaleYTo(scale, duration: 0.1)
wall.position.x = size.width/2 + wall.size.width/2
wall.position.y = scale * (kADGroundHeight/2 + wall.size.height/2)
walls.append(wall)
addChild(wall)
runAction(flip)
}
请帮帮我!!
答案 0 :(得分:0)
我可以想到一些不同的策略,可以在创建sprit时自动生成sprit:
第一个策略是手头有两个不同的图像,一个垂直翻转,另一个不垂直翻转。创建精灵时,如果它产生于地板以下,只需使用以下命令重新构造SKSpriteNode:
wall.texture = SKTexture(imageNamed:“flipped_image”)
如果sprite出现在地板上方,你可以使用相同的方法再次重新构造精灵。
旋转图像。如果你想保持纹理简单而且只需要墙面物体的单个图像,你可以尝试的另一种方法是将图像旋转180度,如下所示:
if belowFloor == true {
zRotation = CGFloat(M_PI)
}
HTH!