我试图改变我的节点的速度。现在,我的节点只要在你触摸的任何地方移动--这是测试的基础。我只是希望我的第一个节点(bubble1 -引用代码)移动得更快一些,这样我就可以再次改变速度,等等。谢谢你的帮助。
*现在我只想改变"bubble1“的速度,没有别的了。我看过其他关于如何做到这一点的帖子,但没有一篇是非常最新的。所以我贴了我自己的。=)
import SpriteKit
import GameplayKit
class GameScene: SKScene {
//var simpleS = SKSpriteNode()
var ball = SKSpriteNode(imageNamed: "Ball")
var bubble = SKSpriteNode(imageNamed: "square")
var bubble1 = SKSpriteNode(imageNamed: "square")
var bubble2 = SKSpriteNode(imageNamed: "square")
var bubble3 = SKSpriteNode(imageNamed: "square")
var bubble4 = SKSpriteNode(imageNamed: "square")
override func didMove(to view: SKView) {
//simpleS = self.childNode(withName: "simpleS") as! SKSpriteNode
//simpleS.physicsBody?.affectedByGravity = true
//simpleS.setScale(3.0)
ball.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
ball.setScale(0.1)
//self.addChild(ball)
bubble.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
bubble.setScale(0.3)
self.addChild(bubble)
bubble1.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
bubble1.setScale(0.3)
self.addChild(bubble1)
bubble2.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
bubble2.setScale(0.3)
self.addChild(bubble2)
bubble3.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
bubble3.setScale(0.3)
self.addChild(bubble3)
bubble4.position = CGPoint(x: self.frame.midX, y: self.frame.midY)
bubble4.setScale(0.3)
self.addChild(bubble4)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
for touch in touches {
let location = touch.location(in: self)
//simpleS.run(SKAction.moveTo(x: location.x, duration: 0.5))
//simpleS.run(SKAction.moveTo(y: location.y, duration: 0.5))
ball.run(SKAction.moveTo(x: location.x, duration: 0.0))
ball.run(SKAction.moveTo(y: location.y, duration: 0.0))
bubble.run(SKAction.moveTo(x: location.x, duration: 0.3))
bubble.run(SKAction.moveTo(y: location.y, duration: 0.3))
bubble1.run(SKAction.moveTo(x: location.x, duration: 0.4))
bubble1.run(SKAction.moveTo(y: location.y, duration: 0.4))
bubble2.run(SKAction.moveTo(x: location.x, duration: 0.5))
bubble2.run(SKAction.moveTo(y: location.y, duration: 0.5))
bubble3.run(SKAction.moveTo(x: location.x, duration: 0.6))
bubble3.run(SKAction.moveTo(y: location.y, duration: 0.6))
bubble4.run(SKAction.moveTo(x: location.x, duration: 0.8))
bubble4.run(SKAction.moveTo(y: location.y, duration: 0.8))
}
}发布于 2016-12-08 06:41:58
有几种方法你可以做到这一点。
速度属性被记录为这里。
您需要做几件事才能使这个值对bubble1来说是可访问的和唯一可寻址的
- give it a unique name in its '.name' property, look up and find that
- have a reference to bubble1 and address its SKAction (a
或者..。您可以懒惰,只需在任何给定节点上调整所有操作的速度值,如下所示:https://developer.apple.com/reference/spritekit/sknode/1483036-speed
https://stackoverflow.com/questions/41032891
复制相似问题