level 10
欢迎各位大佬和萌新来讨论!
官方维基:github.com/LLK/scratch-vm/wiki/Scratch-3.0-Extensions-Specification
2019年01月28日 13点01分
1
level 10
首先讲一讲 2.0 和 3.0 最大的区别。
3.0 的积木在 project.json 中长这样(红色的是必须有的):
{
opcode:‘moveStep’,
//给机器计入 project.json 的名字
blockType:'command',
//积木的种类。有(command,reporter,boolean,hat,conditional, loop)
branchCount:0, //conditional 必选。指需要多少个积木凹槽(想想 if else )
terminal:false, //是否可以继续放积木。(像 stop all 和 forever 这里就是 false)
blockAllThreads:false, //当执行时是否阻止其它线程。(像<触碰?>这里是 true)
text: formatMessage,
//给用户读的信息。formatMessage 是 ReactAPI 的一部分。
// text 就是积木的样子(?)。像 【移动( )步】就是
formatMessage{
id:'move',
defaultMessage:'移动[X]步',
description:'角色移动 x 步'
}
// [X] 就是一个输入框。其中的名字必须是(MACRO_CASE)<-- 我也不知道是什么鬼…好
//像是全大写+下划线的命名方式?
arguments:{ //用来定义输入框的种类。
//比如上面的例子就是:
X;{
type:'number',
//输入类型。像string, number等
default: 10
//默认值。这里也可以是 formatMessage 对象哦!
}
}
func:'moveByStep'
//要调用的函数名称
filter:['sprite']
//显示这个扩展的目标种类。比如【移动()步】就只显示于 'sprite' 种类。默认值是 ['sprite','stage']。
}
有木有觉得和 2.0 的很不一样啊!比2.0的更易懂,同时也变得更繁琐。当然功能也多了一些。
2019年01月28日 14点01分
5
这……岂不是人人都可以做扩展了
![[滑稽]](/static/emoticons/u6ed1u7a3d.png)
?
2019年01月29日 03点01分
level 1
sc3二次开发添加新的模块,保存下来的文件没问题,但是加载不出来,初步判定可能是opcode这环节出问题,请问有什么相关资料吗?
2019年02月17日 04点02分
8
唯一的资料, 源码
2019年02月17日 06点02分
你们是二次开发 sc3 的先锋,别想站在巨人的肩膀上,脚踏实地的做吧!加油成为巨人!
2019年02月17日 10点02分