有点意思。我记得二十来年前看潘俊勇大哥演示过一个类似的,走的是blockly技术栈
我也是第一次研究Scratch的实现,是有点意思,积木块的调度逻辑完美对应到Python的生成器。
最新版本已经加上了一个DSL,现在可以用python开发scratch游戏了,可以直接运行,也可以导出sb3文件在scratch编辑器中打开。
from scratch.dsl import Project, motion, control
project = Project("Bouncing Ball")
sprite = project.sprite("Ball")
sprite.when_flag_clicked(
control.forever()(
motion.move(5),
motion.if_on_edge_bounce(),
control.wait(0.01),
),
)
project.save("ball.sb3")
# project.run()
而且在Python里面构建Scratch积木块,有点元编程的意思,比如在Scratch里面,他需要专门的克隆统帮助做代码复用,现在用python写,你也可以直接在python里面参数化一些代码块,或者复制。