首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpriteKit:“String”不能转换为“DictionaryIndex<String,SKTexture>”

SpriteKit:“String”不能转换为“DictionaryIndex<String,SKTexture>”
EN

Stack Overflow用户
提问于 2014-09-03 15:15:40
回答 1查看 157关注 0票数 0

同时编写一个SKAction.animateWithTextures(.)当我使用‘DictionaryIndex’的字符串键检索与SKTexture相关的字符串时,我遇到了这个错误(‘String’不可转换为‘SKTexture’)。有人能解释一下错误的原因吗?

代码语言:javascript
复制
import SpriteKit

class Player {
    let states: Dictionary<String, SKTexture> = [
        "standing": SKTexture(imageNamed: "standing"),
        "right1": SKTexture(imageNamed: "right1"),
        "right2": SKTexture(imageNamed: "right2"),
        "right3": SKTexture(imageNamed: "right3"),
        "left1": SKTexture(imageNamed: "left1"),
        "left2": SKTexture(imageNamed: "left2"),
        "left3": SKTexture(imageNamed: "left3")
    ]

    let LEFT: UInt32 = 1 << 0
    let FRONT: UInt32 = 1 << 1
    let RIGHT: UInt32 = 1 << 2

    var node: SKSpriteNode!
    var status: UInt32!

    let delay = SKAction.waitForDuration(NSTimeInterval(0.1))

    var runLeft: SKAction!
    var runRight: SKAction!

    init(){
        for state in states {
            state.1.filteringMode = .Nearest
        }

        node = SKSpriteNode(texture: states["standing"])

        node.physicsBody = SKPhysicsBody(rectangleOfSize: node.size)
        node.physicsBody.dynamic = false

        status = FRONT

        runLeft = SKAction.animateWithTextures([states["left1"], states["left2"], states["left1"], states["left3"]]!, timePerFrame: 0.1)
        runRight = SKAction.animateWithTextures([states["right1"], states["right2"], states["right1"], states["right3"]]!, timePerFrame: 0.1)
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 17:00:23

字典查找返回选项,因为键可能不存在。由于每次查找都是SKTexture!类型,因此需要展开它们。

代码语言:javascript
复制
    runLeft = SKAction.animateWithTextures([states["left1"]!, states["left2"]!, states["left1"]!, states["left3"]!], timePerFrame: 0.1)
    runRight = SKAction.animateWithTextures([states["right1"]!, states["right2"]!, states["right1"]!, states["right3"]!], timePerFrame: 0.1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25647978

复制
相关文章

相似问题

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