首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >节点/ Swift 3.0的变化速度

节点/ Swift 3.0的变化速度
EN

Stack Overflow用户
提问于 2016-12-08 06:11:32
回答 1查看 460关注 0票数 2

我试图改变我的节点的速度。现在,我的节点只要在你触摸的任何地方移动--这是测试的基础。我只是希望我的第一个节点(bubble1 -引用代码)移动得更快一些,这样我就可以再次改变速度,等等。谢谢你的帮助。

*现在我只想改变"bubble1“的速度,没有别的了。我看过其他关于如何做到这一点的帖子,但没有一篇是非常最新的。所以我贴了我自己的。=)

代码语言:javascript
复制
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))
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-08 06:41:58

有几种方法你可以做到这一点。

  1. 改变持续时间,因为这会加快速度,但我不认为这是你想要的。我想你想知道如何加快SKAction的速度.
  2. 通过速度属性更改SKAction的执行率

速度属性被记录为这里。

您需要做几件事才能使这个值对bubble1来说是可访问的和唯一可寻址的

  1. 使SKAction on bubble1成为唯一,这样您就可以控制它。有两种方法可以做到这一点:
代码语言:javascript
复制
- give it a unique name in its '.name' property, look up and find that 
- have a reference to bubble1 and address its SKAction (a

  1. 通过更改SKAction属性告诉影响bubble1的.speed运行得更快

或者..。您可以懒惰,只需在任何给定节点上调整所有操作的速度值,如下所示:https://developer.apple.com/reference/spritekit/sknode/1483036-speed

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41032891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档