【问题标题】:How do I call a function with an array of strings as a parameter?如何以字符串数组作为参数调用函数?
【发布时间】:2015-07-08 08:55:23
【问题描述】:

我有一个字符串数组,我想在函数中使用它们

var PostionRotation:Array = ["100,45,0.4","305,45,-0.2","505,45,0.3","705,45,-0.1","905,45,0.2"]

func loadSprite(ArrayOfPositions:[String],NameOfSprite:String,SpriteTextureName:String)
{
    // pass in a array for the positions and rotations of the sprites
    // string for spritename
    // string for spritetexturename
    for Position in 0...ArrayOfPositions.count
    {
    var tempstring = ArrayOfPositions[Position ]as String//takes a string ie: 143,628,0.6
    var tempStringarray : [String] = tempstring.componentsSeparatedByString(",") // adds each item seperated by , to an array
    let XPos = CGFloat((tempStringarray[0] as NSString).floatValue)// exstracts the x cord
    let YPos = CGFloat((tempStringarray[1] as NSString).floatValue)//exstracts the y cord
    let Rot = CGFloat((tempStringarray[1] as NSString).floatValue)//exstracts the zrotation
    let SpriteName =  SKSpriteNode(imageNamed: SpriteTextureName) // add variable with texture
        SpriteName.name = NameOfSprite + String(Position + 1)// gives it a name + number ted1 etc
        SpriteName.position = CGPoint( x: XPos, y: YPos)// gets position from array
        SpriteName.zPosition = 2
        SpriteName.size = CGSize(width: 200, height: 100)
        addChild(SpriteName)
    }
}

如何调用函数?

我试过了:

 loadSprite(PostionRotation, NameOfSprite: "frog", SpriteTextureName: "frog001")

 loadSprite(PostionRotation[String], NameOfSprite: "frog", SpriteTextureName: "frog001")

【问题讨论】:

  • 你做对了,第一个例子。

标签: arrays swift function sprite-kit


【解决方案1】:

你试过了吗:

loadSprite(PostionRotation, NameOfSprite: "frog", SpriteTextureName: "frog001")

这是一个 Playground 示例,它以字符串数组作为参数调用全局函数:

import UIKit

func testFunc(posList:[String]) -> String
{
    var s = ""

    for pos in posList
    {
        s = s + " --- " + pos
    }

    return s
}

var PostionRotation:Array = ["100,45,0.4","305,45,-0.2","505,45,0.3","705,45,-0.1","905,45,0.2"]


var result = "result: " + testFunc(PostionRotation)

在 Playground 中复制它,然后玩它:-)

【讨论】:

  • 嗨 Nicolas 抱歉,这就是我的意思,已编辑以表明感谢您的回复
【解决方案2】:

应该是我的错

var PostionRotation = ["100,45,0.4","305,45,-0.2","505,45,0.3","705,45,-0.1","905,45,0.2"]

这样就可以了

    loadSprite(PostionRotation, NameOfSprite: "frog", SpriteTextureName: "frog001")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-09-11
    • 2020-05-01
    • 2011-12-11
    • 1970-01-01
    相关资源
    最近更新 更多