Discuss Scratch
- sohtamei
-
16 posts
Scratch 3.0 の拡張機能について話すトピック
このスレッドの内容をまとめさせて頂きました。
「Scratch3.0で独自extensionを使ったサンプルプログラムをリンククリックで開く方法」
https://github.com/sohtamei/docs/blob/master/Scratch3.0LinkToSample.md
「Scratch3.0で独自extensionを使ったサンプルプログラムをリンククリックで開く方法」
https://github.com/sohtamei/docs/blob/master/Scratch3.0LinkToSample.md
- akku--n11
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
penで塗りつぶしってできるんですか?]
定義 塗りつぶす
ペンを上げる
x座標を (0) 、y座標を (0) にする
ペンの太さを (1000) にする
ペンを下ろす
ペンを上げる
- ioio3
-
26 posts
Scratch 3.0 の拡張機能について話すトピック
「Makey Makey」のwhen [スペース v] key pressed ::penと「イベント」にある[スペース v] キーが押されたときの違いってなんですか?
⚑ がクリックされたとき
ずっと
もし <[スペース v] キーが押された> なら
end
end
を簡略化したものです
- gdpre2ed98464a95c004773f44d7
-
100+ posts
Scratch 3.0 の拡張機能について話すトピック
噂ですが、デンソーウェブが、QRコード認証を拡張機能として追加する予定と聞いたことがあるのですが、本当でしょうか?
- takoyariika
-
48 posts
Scratch 3.0 の拡張機能について話すトピック
自作拡張機能について質問なんですが
下記のコードを拡張機能として動かした際になぜかブロックが追加されませんでした。
argumentsの部分がないバージョンは動いたので多分そこらへんが悪さしてるとは思いましたが、
いくら調べてもどこがおかしいかわからないので詳しい方は教えてください。
ちなみにe羊icquesで実行した場合、コンソールに
sheeptester.github.io/:1 Uncaught (in promise) DOMException: Failed to execute ‘importScripts’ on ‘WorkerGlobalScope’: The script at ‘ローカルサーバー上のJSファイルのURL’ failed to load.
と出ます。
class Test {
constructor() {}
getInfo() { // 拡張機能の各種情報
return {
id: ‘test’,
name: ‘Test’, // 拡張機能の名前
blocks: [ // 各ブロックの定義
{
opcode: ‘hello’, // このブロックが実行されると、helloという関数が呼ばれる
blockType: Scratch.BlockType.COMMAND, // 「10歩動かす」のような通常の命令ブロック
text: ‘log ’,
arguments: {
TEXT: {
type: ArgumentType.STRING,
defaultValue: “hello”
}
}
}
],
menus: {
}
};
}
hello() {
console.log('hello'); // console log に hello と出力
}
}
Scratch.extensions.register(new Test());
下記のコードを拡張機能として動かした際になぜかブロックが追加されませんでした。
argumentsの部分がないバージョンは動いたので多分そこらへんが悪さしてるとは思いましたが、
いくら調べてもどこがおかしいかわからないので詳しい方は教えてください。
ちなみにe羊icquesで実行した場合、コンソールに
sheeptester.github.io/:1 Uncaught (in promise) DOMException: Failed to execute ‘importScripts’ on ‘WorkerGlobalScope’: The script at ‘ローカルサーバー上のJSファイルのURL’ failed to load.
と出ます。
class Test {
constructor() {}
getInfo() { // 拡張機能の各種情報
return {
id: ‘test’,
name: ‘Test’, // 拡張機能の名前
blocks: [ // 各ブロックの定義
{
opcode: ‘hello’, // このブロックが実行されると、helloという関数が呼ばれる
blockType: Scratch.BlockType.COMMAND, // 「10歩動かす」のような通常の命令ブロック
text: ‘log ’,
arguments: {
TEXT: {
type: ArgumentType.STRING,
defaultValue: “hello”
}
}
}
],
menus: {
}
};
}
hello() {
console.log('hello'); // console log に hello と出力
}
}
Scratch.extensions.register(new Test());
- abee
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
以下のように書き換えて、e羊icquesで実行できました。
プログラムを載せるときはcodeタグを使うことをお勧めします。
プログラムを載せるときはcodeタグを使うことをお勧めします。
class Test { constructor() {} getInfo() { return { id: 'test', name: 'Test', blocks: [ { opcode: 'hello', blockType: Scratch.BlockType.COMMAND, text: 'log', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: 'hello' }, } } ] } } hello(args) { console.log('hello'); } } Scratch.extensions.register(new Test());
- takoyariika
-
48 posts
Scratch 3.0 の拡張機能について話すトピック
以下のように書き換えて、e羊icquesで実行できました。
プログラムを載せるときはcodeタグを使うことをお勧めします。class Test { constructor() {} getInfo() { return { id: 'test', name: 'Test', blocks: [ { opcode: 'hello', blockType: Scratch.BlockType.COMMAND, text: 'log', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: 'hello' }, } } ] } } hello(args) { console.log('hello'); } } Scratch.extensions.register(new Test());
ありがとうございました!
実行できました!
- takoyariika
-
48 posts
Scratch 3.0 の拡張機能について話すトピック
以下のコードを書いてブロックを組み合わせたのですがうまくいきませんでした。
どうしたら想定した挙動になりますか?
僕が思うにはscratchの拡張機能だとグローバル変数にしてもほかのブロックとの共有がうまくいってなかったので
ちゃんと動かなかったんだと思いました。
他のブロックと変数を共有する方法が分かれば多分動くようになると思いました。
想定した挙動
JS実行ブロックででaに1を代入する。
上のブロックで代入したaという変数を変数に入れる
どうしたら想定した挙動になりますか?
僕が思うにはscratchの拡張機能だとグローバル変数にしてもほかのブロックとの共有がうまくいってなかったので
ちゃんと動かなかったんだと思いました。
他のブロックと変数を共有する方法が分かれば多分動くようになると思いました。
想定した挙動
JS実行ブロックででaに1を代入する。
上のブロックで代入したaという変数を変数に入れる
⚑ がクリックされたとき
JS実行[a=1;]
[変数] を (変数[a]) にする
class jsexec { constructor() {} getInfo() { return { id: 'JSEXEC', name: 'JS実行', blocks: [ { opcode: 'jikko', blockType: Scratch.BlockType.COMMAND, text: 'JSを実行[TEXT]', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: 'スクリプト内容' }, } }, { opcode: 'hensu', blockType: Scratch.BlockType.REPORTER, text: '変数[TEXT]', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: '変数名' }, } } ] } } jikko(args) { var text = String(args.TEXT); eval(text); } hensu(args) { var text = String(args.TEXT); var kekka=0; eval("var kekka = parseFloat("+text+");"); return kekka; } } Scratch.extensions.register(new jsexec());
- Es-2
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
ここは「ここはScratch 3.0 で追加された「拡張機能」について話すトピック」なので、自作拡張機能についてはScratch 3.0 をハック(動作や構造を解析すること)しよう!
で投稿したほうがいいですよ。
で投稿したほうがいいですよ。
- abee
-
1000+ posts
Scratch 3.0 の拡張機能について話すトピック
#55
#1に「こんな拡張機能作ってみたいけど、どうすればいいと思いますか?」と書いてあります。
#1に「こんな拡張機能作ってみたいけど、どうすればいいと思いますか?」と書いてあります。
- takoyariika
-
48 posts
Scratch 3.0 の拡張機能について話すトピック
globalThisで宣言した変数はちゃんと動作しました。
少し不便ですけどやりたいことはできるのでそうしました。
少し不便ですけどやりたいことはできるのでそうしました。
- takoyariika
-
48 posts
Scratch 3.0 の拡張機能について話すトピック
完成した拡張機能はこうなりました。
jsの実行と変数の出力とコンソール出力の機能があります。
jsの実行と変数の出力とコンソール出力の機能があります。
class jsexec { constructor() {} getInfo() { return { id: 'JSEXEC', name: 'JS実行', blocks: [ { opcode: 'jikko', blockType: Scratch.BlockType.COMMAND, text: 'JSを実行[TEXT]', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: 'スクリプト内容' }, } }, { opcode: 'hensu', blockType: Scratch.BlockType.REPORTER, text: 'JS変数[TEXT](「globalThis.」で宣言した変数のみ)', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: '変数名' }, } }, { opcode: 'gurobaru', blockType: Scratch.BlockType.REPORTER, text: 'コピペ用[TEXT]', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: 'globalThis.' }, } }, { opcode: 'konsoru', blockType: Scratch.BlockType.COMMAND, text: 'コンソール出力[TEXT]', arguments: { TEXT: { type: Scratch.ArgumentType.STRING, defaultValue: '出力したい言葉' }, } } ] } } jikko(args) { var text = String(args.TEXT); eval(text); } hensu(args) { var text = String(args.TEXT); var kekka=0; eval("kekka = "+text+";"); return kekka; } gurobaru(args) { return 0; } konsoru(args) { var text = String(args.TEXT); console.log(text); } } Scratch.extensions.register(new jsexec());
- taji-pg
-
62 posts
Scratch 3.0 の拡張機能について話すトピック
最近LEGO社が新しく「LEGO spike」というレゴブロックで作ったロボットを動かすキットを作りましたが、EV3やBOOST、LEGOwedoの拡張機能までも追加してるからLEGOspikeの拡張機能も追加してほしいです。
- 3659662244
-
100+ posts
Scratch 3.0 の拡張機能について話すトピック
質問失礼します。ここは拡張機能などで増えて欲しいものは投稿しない方が良いのですか?