ios - 使用 ARkit 生成多个对象
问题描述
我如何产生不止一种类型的敌人?它们的标记方式有小、中和大。
func spawnAlien(numAliens: Int) -> Alien?{ // Decides whether an alien should be spawned
guard numAliens < maxAliens else { return nil }
spawnCount += 1
if(spawnCount == spawnFreq){
spawnCount = 0
if(arc4random_uniform(spawnProb) == 0){
return Alien(health: 1, power: 1, shotFreq: 60, shotProbHigh: 10, shotProbLow: 2, type: .small)
}
}
return nil
}
解决方案
你这里的这个功能
return Alien(health: 1, power: 1, shotFreq: 60, shotProbHigh: 10, shotProbLow: 2, type: .small)
只占.small
.
您可能可以将其更改为.medium
或.large
。
如果你想随机产生不同的类型,你可以使用另一种arc4random_uniform
来确定随机类型。
var typeToBeRandomized = .small
let randomValue = arc4random_uniform(3)
if randomValue == 1 {
typeToBeRandomized = .medium
} else if randomValue == 2 {
typeToBeRandomized = .large
}
现在将其传递typeToBeRandomized
给您上面的 Alien 构造函数,而不是硬编码.small
推荐阅读
- html - 我需要帮助查找该函数的名称
- python - 为什么这两个代码打印不同的东西?
- eiffel - 埃菲尔:百分比字符转换为字符串
- r - 在 R 中的列向量中检测和子集模式
- python - 在较大列表中的一个列表中查找特定的值序列
- python - 如何在 Redshift 中将十六进制数转换为二进制数?
- python - IfxPy - 使用带有 IfxPy 的 python 连接到 Informix 时出错
- android - 将图像文件从 Android 设备上传到 Laravel API
- selenium - Pyinstaller 包含用于 Firefox 的 selenium
- google-apps-script - 如何防止基于另一个值的单元格中的更改并显示有关尝试的警报框?