如何在Sprite Kit / Swift中将文本环绕在圆形周围

4
2个回答

11
以下代码将字符串中的字符包裹在半圆的顶部,它通过为字符串中的每个字符创建一个标签节点,将标签的位置设置为圆上的适当位置,然后旋转每个标签节点,使其在该位置处切线于圆。
class GameScene:SKScene {
    override func didMove(to view:SKView) {
        let radius = CGFloat(50.0)
        let circleCenter = CGPoint.zero

        let string = "Your Text Here"
        let count = string.lengthOfBytes(using: String.Encoding.utf8)
        let angleIncr = CGFloat.pi/(CGFloat(count)-1)
        var angle = CGFloat.pi
        // Loop over the characters in the string
        for (_, character) in string.characters.enumerated() {
            // Calculate the position of each character
            let x = cos(angle) * radius + circleCenter.x
            let y = sin(angle) * radius + circleCenter.y
            let label = SKLabelNode(fontNamed: "Arial")
            label.text = "\(character)"
            label.position = CGPoint(x: x, y: y)
            // Determine how much to rotate each character
            label.zRotation = angle - CGFloat.pi / 2
            label.fontSize = 30
            addChild(label)
            angle -= angleIncr
        }
    }
}

在这里输入图片描述


谢谢!有没有一种简单的方法来改变文本覆盖圆形的程度? - Sam Acquaviva
是的,您需要更改 angleIncrangle 的初始值。 - 0x141E
你是否成功创建了你想要实现的效果? - 0x141E

0

二叉树是一种非线性数据结构。每个父节点必须至少有两个子节点。


您的回答目前写得不够清晰。请[编辑]以添加更多细节,帮助其他人理解它是如何解决问题的。您可以在帮助中心找到有关编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接