scratch 3.0 学习笔记

scratch3.0 几个核心库介绍

scratch-gui

由 React 组件实现的的 UI 界面

大概布局和功能

scratch-blocks

Scratch Blocks 是基于谷歌 Blockly 开发的一个图形化 js 库,用积木块的形式来实现编程。

这里 Scratch Blocks 抛弃了 Blockly 中积木块转 Python 等编程语言的功能(Blockly中Generator 的部分),通过抛事件的方式搭配 Scratch VM 来实现控制舞台渲染。

scratch-vm

Scratch VM 是一个运行 Scratch Blocks 代码块的引擎库。主要有以下功能:

scratch-render

Scratch Render 是基于 webgl 的一个渲染引擎,主要用到了 twgl 库,定义了供 Scratch VM 调用的接口。 主要功能: + 根据 svg、png 的数据在 canvas 中渲染成图形 + 更新角色图层的信息:大小、位置、角度、图层优先级、图形特效等 + 画笔图层

scratch-audio

Scratch Audio 是用来解析声音、播放声音的库。

Scratch Link 通过 WebSocket 使 Scratch 硬件扩展可以和硬件设备通讯。

想知道怎么用 nodejs 实现,可以查看 https://github.com/Micircle/scratch-node-link。

其他仓库

scratch-paint:GUI 中造型编辑的组件,用到了 paper.js,目前处理带有 text 标签的 svg 文件时会有 bug,在 windows 环境中容易崩溃。

scratch-svg-render:scratch 处理 svg 资源的一个工具库,处理带有 text 标签的 svg 文件时会有 bug。

scratch-i10n:scratch 多语言库,包含了Scratch GUI 和 Scratch Blocks 中用到的翻译信息。

笔记目录

喜欢的话请点击一下右上角的 Star 吧,谢谢~