arrays - 如何按时间顺序移动数组?
问题描述
我正在开发一个拖放游戏,用户将标签移动到相应的节点。
我目前有这个代码:
func setupDragLabel(){
let random = Int(arc4random_uniform(1))
if random == 0 {
let numbersArray = ["one", "two", "three", "four", "five"]
let index = Int(arc4random_unifrom(UInt32(numbersArray.count)))
label.text = numbersArray[index]
label.name = "numbers"
}
else{
let lettersArray = ["a", "b", "c", "d", "e"]
let index = Int(arc4random_uniform(UInt32(lettersArray.count)))
label.text = lettersArray[index]
label.name = "letters"
}
((self.addChild(label))
}
然后结束触摸:
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if label.name == "numbers"{
if numbersBin.frame.contains(label.position){
label.removeFromParent()
setupDragLabel()
}
}
if label.name == "letters" {
if lettersBin.frame.contains(label.position){
label.removeFromParent()
setupDragLabel)
}
}
}
目前,该功能永远持续下去,从数组中随机选择。但是,我想对其进行设置,以便函数setupDragLabel()
在每个数组中移动,当它到达两个数组的末尾时,它将移动到下一个屏幕。我将如何更改我当前的代码(我知道这意味着删除 arc4random,但不确定如何在顶部修复它),我需要编写什么函数才能让它继续前进?
解决方案
我建议制作numbersArray
和lettersArray
变量,然后从这些数组中删除您已经使用过的元素。
var numbersArray = ["one", "two", "three", "four", "five"]
var lettersArray = ["a", "b", "c", "d", "e"]
func setupDragLabel(){
let random = Int(arc4random_uniform(1))
if random == 0, numbersArray.count > 0 {
let index = Int(arc4random_uniform(UInt32(numbersArray.count)))
label.text = numbersArray[index]
numbersArray.remove(at: index)
label.name = "numbers"
self.addChild(label)
}
else if lettersArray.count > 0 {
let index = Int(arc4random_uniform(UInt32(lettersArray.count)))
label.text = lettersArray[index]
label.name = "letters"
self.addChild(label)
}
}
推荐阅读
- react-native - 在 React Native (Expo) 中上传图片,使用 fetch 导致 400 错误
- cmake - cmake错误:cc失败,因为没有输入文件
- dart - 从谷歌播放数据更新 Android 应用程序的 SharedPreferences 丢失
- html - 无法连接 h1 和 ul
- javascript - 如何在不全局重新定义的情况下本地更改选项对象属性
- functional-programming - 为什么 x = x +1 在 Elixir 中有效?
- javascript - Mongoose Populate - 如何动态或编程执行字段选择
- json - 如何将飞镖列表反序列化为 json 对象?
- python - 在 pandas 中使用 for 循环的虚拟变量和连接数据帧
- python - 从Python中的字符串中提取正确的字符