首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SKSpriteNode -恒速,并检测哪个SKSpriteNode做某事

SKSpriteNode -恒速,并检测哪个SKSpriteNode做某事
EN

Stack Overflow用户
提问于 2022-06-06 14:19:31
回答 1查看 32关注 0票数 0

我有两个问题:

  1. 如何使SKSpriteNode以恒定的速度和方向移动?我目前使用的是item.physicsBody?.velocity,但我只想在左边的方向上保持恒定的速度。

代码语言:javascript
复制
let item = SKSpriteNode(color: .black, size: CGSize(width: 32, height: 16))
item.position = CGPoint(x: 600, y: self.heights[random])
item.physicsBody = SKPhysicsBody(rectangleOf: CGSize(width:32, height: 16))
addChild(item)
item.physicsBody?.velocity = CGVector(dx: -360, dy: 0)
item.physicsBody!.affectedByGravity = false

  1. 我在touchesBegan()中有上面的代码。我想向update()添加一些代码,以检测这些创建的SKSpriteNodes中的一个何时做了某件事情(例如到达指定的x位置),然后对该SKSpriteNode进行更改(例如删除它)。我是如何做到这一点的,这样我才能得到特定的SKSpriteNode?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-06 21:09:05

  1. 只是手动更新你的精灵的位置。定义每秒以点数为单位的速度,使用update()中的计时器来查看自上次调用它以来已经过去了多少时间,并使用双数学计算出它的新位置。我做过这件事,而且效果很好。

  1. --我不知道touchesBegan()代码在这一点上有什么相关性(您是在创建一个精灵并在触摸屏幕时设置它吗?),但是通常您可以使用enumerateChildNodes()迭代场景中的子节点数组。当有一个与标准匹配的节点(特定的x位置等)时,在节点.

上执行操作。

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

https://stackoverflow.com/questions/72519065

复制
相关文章

相似问题

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