jjzjj

swift - 改变节点/Swift 3.0 的速度

coder 2023-09-16 原文

我正在尝试更改节点的速度。现在我的节点只是在你触摸的任何地方在屏幕上移动——对于测试来说非常基本。我只是想让我的第一个节点(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))
    }
}

最佳答案

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

  1. 更改持续时间,因为这会加快速度,但我认为这不是您要问的。我想你想知道如何加速 SKAction....

  2. 通过其速度属性更改 SKAction 的执行速率

速度属性已记录 here.

您需要做几件事才能使 bubble1 可以访问并唯一寻址此值

  1. 使 bubble1 上的 SKAction 独一无二,以便您可以控制它。有两种方法:

    • 在其“.name”属性中为其指定一个唯一的名称,查找并找到它
    • 引用 bubble1 并解决它的 SKAction(a
  2. 通过更改 .speed 属性告诉影响 bubble1 的 SKAction 运行得更快

或者...你可以偷懒,只调整任何给定节点上所有 Action 的速度值,用这个:https://developer.apple.com/reference/spritekit/sknode/1483036-speed

关于swift - 改变节点/Swift 3.0 的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41032891/

有关swift - 改变节点/Swift 3.0 的速度的更多相关文章

  1. ruby - 改变替换的大小写 - 2

    我有以下内容:text.gsub(/(lower)(upper)/,'\1\2')我可以将\2替换为大写吗?类似于:sed-e's/\(abc\)/\U\1/'这在Ruby中可行吗? 最佳答案 查看gsub文档:str.gsub(模式){|匹配|block}→new_str在block形式中,当前匹配字符串作为参数传入,$1、$2、$`、$&、$'等变量将被适当设置。block返回的值将替换为每次调用的匹配项。"alowerupperb".gsub(/(lower)(upper)/){|s|$1+""+$2.upcase}

  2. 区块链入门教程(6)--WeBASE-Front节点前置服务安装 - 2

    文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定

  3. ruby - 选择包含子节点内文本的父节点 - 2

    基本上我想选择一个节点(div),其中它的子节点(h1,b,h3)包含指定的文本。Childtext1Childtext2...Childtext3我期待的是/html/div/而不是/html/div/h1我在下面有这个,但不幸的是返回了child,而不是div的xpath。expression="//div[contains(text(),'Childtext1')]"doc.xpath(expression)我期待的是/html/div/而不是/html/div/h1那么有没有一种方法可以简单地使用xpath语法来做到这一点? 最佳答案

  4. java - Ruby 和 Java 的速度 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。在我在网上找到的每个基准测试中,Ruby似乎都很慢,比Java慢得多。Ruby的人只是说这无关紧要。您能举个例子说明RubyonRails(以及Ruby本身)的速度真的无关紧要吗?

  5. ruby - 删除指定节点之后的所有节点 - 2

    这个问题在这里已经有了答案:Nokogiri:SelectcontentbetweenelementAandB(3个答案)关闭2年前。我正在从url中抓取文本的div,并想删除具有backtotop类的段落下方的所有内容。我在stackoverflow上看到了一段遍历代码片段,看起来很有希望,但我不知道如何将它合并,所以@el只包含第一个p.backtotop之前的所有内容分区我的代码:@doc=Nokogiri::HTML(open(url))@el=@doc.css("div")[0]end遍历片段:doc=Nokogiri::HTML(code)stop_node=doc.css

  6. ruby - 为什么我不能改变 self 的值(value)? - 2

    为什么我可以这样改变“self”:self.map!{|x|x*2}或者这样:self.replace(self.map{|x|x*2})但不是这样:self=self.map{|x|x*2}为什么Ruby不允许我更改“self”变量指向的对象,但允许我更改对象的属性? 最佳答案 不是答案,只是一个线索。a=[1,2]=>[1,2]a.object_id=>2938a.map!{|x|x*2}=>[2,4]a.object_id#differentdatabutstillthesameobject=>2938a.replace(a.

  7. ruby - 如何从 Chef 说明书中的库访问当前节点? - 2

    我正在尝试为ChefRecipe编写一个库,以简化一些常见的搜索。例如,我希望能够在cookbook/libraries/library.rb中执行类似的操作,然后从同一Recipe中的Recipe中使用它:moduleExampledefself.search_attribute(attribute_name)returnsearch(:nodes,node[attribute_name])endend问题是,在Chef库文件中,node对象或search函数都不可用。似乎可以使用Chef::Search::Query.new().search(...)进行搜索,但我找不到任何可以访

  8. ruby - 为什么括号内的换行符会改变算术结果? - 2

    为什么下面的表达式会这样解析?括号的优先级应该高于换行符,不是吗?3-(1+1)#=>13-(1+1)#=>2省略加号也会让表达式计算为2:3-(11)#=>2如果我声明为连续的换行符(转义)或将加号移动到第一行,则会实现所需的行为:3-(1\+1)#=>13-(1+1)#=>1 最佳答案 这是因为Ruby将新行识别为表达式的结尾,除非表达式不完整。例如,(1+1)与相同(1;+1)这与+1相同,因为返回了括号内的最后一个表达式。这进一步与1相同。如果行尾有+,则表达式不完整,因此会继续到下一行。这使得:3-(1+1)被解释为3-(

  9. ruby - 如何使用Nokogiri和XPath获取具有多个属性的节点 - 2

    我正在尝试使用Nokogiri来解析带有一些相当古怪的标记的HTML文件。具体来说,我正在尝试获取同时定义了id、多个类和样式的div。标记看起来像这样:titleListofstuff我正在尝试获取里面的问题.我可以毫无问题地获得具有单个id属性的div,但我想不出一种方法让Nokogiri获取具有和两个id类的div。所以这些工作正常:content=@doc.xpath("//div[id='foo']")content=@doc.css('div#foo')但是这些不返回任何东西:content=@doc.xpath("//div[id='bar']")content=@doc

  10. ruby-on-rails - Ruby 的 range step 方法导致执行速度很慢? - 2

    我有这段代码:date_counter=Time.mktime(2011,01,01,00,00,00,"+05:00")@weeks=Array.new(date_counter..Time.now).step(1.week)do|week|logger.debug"WEEK:"+week.inspect@weeks从技术上讲,代码有效,输出:SatJan0100:00:00-05002011SatJan0800:00:00-05002011SatJan1500:00:00-05002011etc.但是执行时间完全是垃圾!每周计算大约需要四秒钟。我在这段代码中是否遗漏了一些奇怪的低效

随机推荐