swift - 在 Sprite Kit 中跨屏幕移动 Sprite

标签 swift sprite-kit

我正在尝试将一个红球 Sprite 从左侧和右侧移动到屏幕上。我听说我可以通过使用速度属性来做到这一点,或者其他方式也可以,但这是我的代码。

import SpriteKit

class GameScene: SKScene, SKPhysicsContactDelegate {

let  redBall = SKSpriteNode(imageNamed: "redball")

override func didMoveToView(view: SKView) {
    let thrust = CGFloat(0.12)
    let thrustDirection = Float()



    //RedBall Properties
    redBall.physicsBody = SKPhysicsBody(circleOfRadius: redBall.size.width/2)
    redBall.physicsBody?.velocity
    addChild(redBall)


    //World Phyisics Properties
    let worldBorder = SKPhysicsBody(edgeLoopFromRect: self.frame)
    self.physicsBody?.friction = 1
    self.physicsBody = worldBorder
    self.physicsWorld.gravity = CGVectorMake(0, 0)

}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {

}
override func touchesMoved(touches: Set<NSObject>, withEvent event: UIEvent) {

}
}

谢谢!

最佳答案

假设您希望 SKAction 在屏幕上滑动,而不是简单地从 a 点移动到 b 点,您可能需要使用 SKAction。你可以这样做:

let move = SKAction.moveToX(self.frame.size.width, duration: 1.0)
redBall.runAction(move)

这将创建一个名为 move 的 SKAction,它将节点移动到屏幕右侧,然后在节点(在本例中为 redBall)上运行该操作。

要向左移动,只需将移动操作中的 x 值更改为:

let move = SKAction.moveToX(0, duration: 1.0)

关于swift - 在 Sprite Kit 中跨屏幕移动 Sprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32491851/

相关文章:

android - 适用的 SKTextureAtlas atlasNamed Failure

swift - Xcode 7 playground 中没有显示轴

ios - 使用 Accelerate 平均像素颜色

ios - 将我在 Parse 中的列设置为 Swift 中 ObjectId 的指针

swift - 如何对 Sprite 集合运行一个 Action ?

ios - SpriteKit 内存泄漏?

ios - 让菜单从数组的开头开始

ios - 是否同时调用多个 didBeginContact 调用?

ios - 如果在GCD中为队列创建相同的名称,它是同一个队列吗?

swift - 检查 Int 中所有值的最佳方法