在 Xcode 中,单击时如何让 SkSpriteNode 向上移动?
Posted
技术标签:
【中文标题】在 Xcode 中,单击时如何让 SkSpriteNode 向上移动?【英文标题】:In Xcode how would I get a SkSpriteNode to move up when clicked on? 【发布时间】:2018-08-05 06:22:48 【问题描述】:如何让 SkSpriteNode 在单击时向上移动? -谢谢
https://i.stack.imgur.com/fcOvr.png
【问题讨论】:
【参考方案1】:假设你的节点被称为盒子
使用触摸开始功能
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
for _ in touches
let touch:UITouch = touches.first!
let touchLocation = touch.location(in: self)
box.physicsBody?.velocity = CGVector(dx: 0, dy: 0)
box.physicsBody?.applyImpulse(CGVector(dx: 0, dy:300))
applyImpusle 方法采用 x 值沿 x 轴(左或右)移动,并采用 y 值沿 y 轴(向上或向下)移动。相应地设置 dy。
其余部分取决于您的场景属性,例如重力、摩擦力、盒子的质量等
【讨论】:
假设人们使用的是物理实体,你应该使用physicsBody!
而不是physicsBody?
【参考方案2】:
不使用physicsBody,您可以使用此代码,只需更改向上移动的方式(我手动执行此操作只是为了保持简单)。
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
for touch in touches
let location = touch.location(in: self)
if sprite.contains(location)
sprite.position = CGPoint(x: 0, y: 10)
【讨论】:
以上是关于在 Xcode 中,单击时如何让 SkSpriteNode 向上移动?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Swift SpriteKit 在 For 循环中一一创建 SKSprite 节点