TurtleBuilder

Actions Status Build GitHub Release GitHub Top Language License Twitter

TurtleBuilder 是一个基于 Swift 函数构建器的 海龟绘图工具。它允许你使用类似 Logo 的语法,在你的 Swift 项目中创建和绘制线条。

TurtleBuilder Example

为什么?

因为有趣!

要求

安装

你可以通过 Swift Package Manager 将 TurtleBuilder 安装到你的项目中。

用法

构建一个海龟

你可以使用构建代码块来构建一个海龟。例如

let turtle = Turtle {
        penDown()
        loop(9) {
            left(140)
            forward(30)
            left(-100)
            forward(30)
        }
        penUp()
}

然后你可以通过调用 turtle.lines 从海龟那里获取线条。 如果你渲染它,它看起来会像这样

screenshot.png

命令

TurtleBuilder 提供了以下命令来让你控制你的海龟

在视图中绘制

TurtleBuilder 提供了两个视图,你可以在其中让海龟绘制图形。 一个是 TurtleView,它使用 Quartz 2D 渲染静态线条,另一个是 AnimatedTurtleView,它使用 Core Animation 创建动画图层。

你可以如下使用 AnimatedTurtleView

let turtleView = AnimatedTurtleView(frame: self.view.bounds) {
    penDown()
    loop(10) {
        left(10)
        forward(10)
    }
    penUp()
}

然后调用 turtleView.animate() 来启动动画。

已知问题

如果你在 loop 命令内的命令中使用变量,我们只取值一次。 例如,如果你有如下代码

loop(5) {
   left(Int(arc4random() % 50))
   forward(Int(arc4random() % 50))
}

我们不会在循环的每次运行时生成新的随机数,并且发送给命令的值保持不变。

欢迎补丁。 尽情享用! 🐢