提问人:Mugs 提问时间:6/7/2020 更新时间:6/7/2020 访问量:59
根据速度更改 swift SKSprite 节点动画
Change swift SKSprite node animation based on velocity
问:
类型“SKSpriteNode”的值没有成员“velocity”
我想根据我的 SKSprite 节点的速度更改动画,但我收到上面显示的错误,我不确定为什么
覆盖 func touchesBegan(_ touches: Set, with event: UIEvent?){ super.touchesBegan(touches,带有:事件)
if let location = touches.first?.location(in: self) {
let horizontalAction = SKAction.move(to: location, duration: 1.0)
horizontalAction.timingMode = SKActionTimingMode.easeOut
player?.run(horizontalAction)
let playerAnimatedAtlas = SKTextureAtlas(named: "animation")
var walkFrames: [SKTexture] = []
var lwalkFrames: [SKTexture] = []
let numImages = playerAnimatedAtlas.textureNames.count
for i in 1...numImages {
let playerTextureName = "player\(i)"
let playerLeftTextureName = "lplayer\(i)"
walkFrames.append(playerAnimatedAtlas.textureNamed(playerTextureName))
lwalkFrames.append(playerAnimatedAtlas.textureNamed(playerLeftTextureName))
}
walkingPlayer = walkFrames
lwalkingPlayer = lwalkFrames
let leftFrameTexture = lwalkingPlayer[0]
let firstFrameTexture = walkingPlayer[0]
player!.physicsBody?.isDynamic = true
player!.physicsBody = SKPhysicsBody(texture: firstFrameTexture,
size: player!.texture!.size())
if player!.velocity.dx < 0 {
//ERROR: Value of type 'SKSpriteNode' has no member 'velocity' ****
player! = SKSpriteNode(texture: leftFrameTexture)
}
else if player!.velocity.dx > 0 {
//ERROR: Value of type 'SKSpriteNode' has no member 'velocity' ****
player! = SKSpriteNode(texture: firstFrameTexture)
}
}
}
答:
1赞
Lou Franco
6/7/2020
#1
尝试player!.physicsBody.velocity
(我知道这不是你的问题,但最终尽量不需要无处不在的 - 使用和!
if let
guard let
)
评论
0赞
Mugs
6/7/2020
你回答了我的具体问题,谢谢!但是现在我收到另一个错误,即“在'BinaryInteger'上引用运算符函数'>'要求'CGVector'符合'BinaryInteger'”,只要有机会,你就可以帮忙了
0赞
Mugs
6/7/2020
是的,我真的是 Swift 的新手,大约一周前我才开始学习。我想我明白了if let的概念,但它的代码要多得多,我不确定我是否理解为什么它更好
0赞
Mugs
6/7/2020
我不想继续创建一堆新的 let 变量,对吧?此外,我的一些代码需要一个可选的,例如 im 将相机添加到播放器精灵节点。
0赞
Lou Franco
6/7/2020
每次使用 时,您都是在说您知道变量不是 nil。如果你错了,你的应用程序将崩溃。使用 guard let 让你检查它是否为 nil,如果是,则停止执行其余的函数。!
0赞
Lou Franco
6/7/2020
Vector 不支持 -- 这到底意味着什么?您可能想比较向量的大小(请参阅>
hypot()
)
评论