libGDX无法绘制样条曲线
我有以下Board Group
,我需要绘制一个给定的点曲线
class Board : Group { private var touchPosition: Vector2 = Vector2.Zero private val selectedLetters = mutableListOf<Letter>() private val sr = ShapeRenderer() override fun draw(batch: Batch?, parentAlpha: Float) { super.draw(batch, parentAlpha) if (selectedLetters.size > 0) { val points = selectedLetters.map { Vector2(it.x, it.y) }.toMutableList() points.add(touchPosition) val path = CatmullRomSpline<Vector2>(points.toTypedArray(), true) sr.setAutoShapeType(true) sr.begin() sr.color = Color.WHITE val p1 = Vector2() val p2 = Vector2() val numSegments = points.size * 25 for (i in 0..numSegments-1) { val t = i / numSegments.toFloat() path.valueAt(p1, t) path.valueAt(p2, t + (1 / numSegments.toFloat())) sr.line(p1.x, p1.y, p2.x, p2.y) } sr.end() } } }
我正在尝试从当前touchPosition
附加的selectedLetters
位置绘制曲线。 我省略了更新点的逻辑,但是您可以假设selectedLetters
里至少有一个字母。 当我触摸的结果是一个空白的屏幕。
不知道我做错了什么。 我正在回答:
https://gamedev.stackexchange.com/questions/140437/how-to-draw-smooth-moving-curve-in-libgdx
除了我把代码放在Group
的draw
函数中。