Arrays 如何使用字符串数组作为参数调用函数?
我有一个字符串数组,我正试图在函数中使用它Arrays 如何使用字符串数组作为参数调用函数?,arrays,swift,function,sprite-kit,Arrays,Swift,Function,Sprite Kit,我有一个字符串数组,我正试图在函数中使用它 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
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")
您是否尝试过:
loadSprite(PostionRotation, NameOfSprite: "frog", SpriteTextureName: "frog001")
下面是一个示例,它使用字符串数组作为参数调用全局函数:
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)
把它复制到操场上玩:-)应该是我的错
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")
嗨,Nicolas抱歉,这就是我想说的,我已经编辑好了,用第一个例子来表示感谢你的回复,你做得对。