swift - Swift 中的随机值

标签 swift sprite-kit skspritenode arc4random

我试图获得一个介于 0 和我的屏幕尺寸之间的值。所以我这样做了:

let sizeX = Int(CGRectGetMaxX(self.frame))
let sizeY = Int(CGRectGetMaxY(self.frame))
var randomX = CGFloat(arc4random()) % sizeX
var randomY = CGFloat(arc4random()) % sizeY
self.touchButton.position = CGPointMake(randomX, randomY)

我有这个错误: 找不到接受提供的参数的“%”的重载

我需要这个来随机化 SkSpriteNode 的位置,也许有更好的解决方案?

谢谢

最佳答案

arc4random() 返回的值转换为 Int,然后将整个表达式转换为 CGFloat:

var randomX = CGFloat(Int(arc4random()) % sizeX)
var randomY = CGFloat(Int(arc4random()) % sizeY)
self.touchButton.position = CGPointMake(randomX, randomY)

关于swift - Swift 中的随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466330/

相关文章:

box2d - 恢复为 0 的 SKPhysicsBody 仍然反弹

swift - 随机生成一个 Spritekit 节点

ios - 尝试制作一个平台,让我可以从下面跳过去,但可以降落在上面。难以微调逻辑

ios - Swift 编译器显示预期的声明错误

arrays - 如何将 UITableViewCell 内的 UICollectionViewCell 的选定索引路径保存到数组?

objective-c - 使用 Sprite Kit 移动节点

ios - SKSprite 场景的内存问题

swift - 当玩家与其他 SKSpriteNode 碰撞时摆脱 "bounce"

ios - 快速访问前置摄像头?

ios - 无法为 View 设置 iOS 状态栏颜色