Kotlin的新手,从事简单的圈子工作。我已经能够让两个圈子联系上我想要的方式,但是似乎可以进一步发展链条。似乎宽度(w2)在第一次迭代后没有得到更新。让我知道为什么我的代码不起作用以及如何改进它。 预先谢谢您:)保持苏醒!
val iterator = (0..12).iterator()
if (iterator.hasNext()) {
canvas.drawCircle(w.toFloat(), h.toFloat(), (100).toFloat(),brush1)
iterator.next()
}
iterator.forEach {
val w2 = w-100
canvas.drawCircle((w2).toFloat(), h.toFloat(), (100).toFloat(),brush1)
}
这是我想要创造的效果
答案 0 :(得分:2)
w2
永远不会更改,因为它基于从未修改过的w
。
您可以使用提供给lambda(it
)的参数来告诉您正在进行的迭代,而不必使用怪异的迭代器:
val x = 100 // starting x
val inc = 100 // offset for following circles
repeat(12){
val targetX = x + inc * it
canvas.drawCircle(targetX.toFloat(), y.toFloat(), 100.toFloat(), brush)
}