Xcode 如何让 SkSpriteNode 在点击时向上移动?
In Xcode how would I get a SkSpriteNode to move up when clicked on?
如何让SkSpriteNode在点击时向上移动?
-谢谢
https://i.stack.imgur.com/fcOvr.png
假设您的节点名为 box
使用触摸开始功能
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 的情况下,您可以使用此代码,只需更改向上移动的方式(为了简单起见,我手动执行此操作)。
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)
}
如何让SkSpriteNode在点击时向上移动? -谢谢
https://i.stack.imgur.com/fcOvr.png
假设您的节点名为 box
使用触摸开始功能
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 的情况下,您可以使用此代码,只需更改向上移动的方式(为了简单起见,我手动执行此操作)。
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)
}