【问题标题】:How to populate an SKShapeNode uniformly如何统一填充 SKShapeNode
【发布时间】:2015-11-23 17:31:33
【问题描述】:

我用来生成行的代码是这样的:

 func populate(num: Int) {
    for var i = 0; i < num; i++ {
        let lines = Line(size: CGSizeMake(lineWidth, lineHeight))
        let x = CGFloat(arc4random_uniform(UInt32(size.width * 20))) - size.width / 4
        let y = CGFloat(arc4random_uniform(UInt32(size.height * 90))) - size.height / 100
        lines.position = CGPointMake(x, y)
        addChild(lines)
        lines.zPosition = -1

    }

它填充得很好,但它们都是随机放置的(我从教程中获得了这段代码)。我想知道是否有一种方法可以每 x 个点均匀地生成一条线,而无需手动放置它们。提前致谢。

【问题讨论】:

    标签: swift sprite-kit skshapenode


    【解决方案1】:

    而不是let x = CGFloat(arc4random_uniform(UInt32(size.width * 20))) - size.width / 4 let y = CGFloat(arc4random_uniform(UInt32(size.height * 90))) - size.height / 100,您可以定义您希望 x 的放置方式,例如:

    let x = (i * size.width)
    let y = 0
    

    将你的线条沿着 x 轴放置在一条直线上,其中 y 为 0

    【讨论】:

    • 我如何测试你的代码大声笑如果你得到错误可能是由于铸造问题,将值包装在一个 CGFloat 像let x = CGFloat(i * size.width)
    • 哦,对了。好吧,我认为它可以正常工作,但它给了我一个“二进制运算符 '*' 不能应用于 Int 和 CGFloat 类型的操作数
    • 这意味着你需要转换其中一个变量,所以let x = CGFloat(i) * size.width
    • 太棒了!无论如何我可以改变线条之间的距离吗?
    • 你需要了解你的代码在做什么,x是行的地方,你想增加距离,增加x的值
    猜你喜欢
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2020-12-28
    • 1970-01-01
    相关资源
    最近更新 更多