Discuss Scratch
- Discussion Forums
- » 日本語
- » Scratch 3.0 をハック(動作や構造を解析すること)しよう!
- inoking
-
1000+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
まえ、どこかのディスカッションフォーラムでこの辺を読んでみてください。
https://scratch.mit.edu/users/Black-takashi_01/favorites/の
好きなプロジェクト版のリンクを見たんですが、どんなのかどなたかわかりますかね?
- inoking
-
1000+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
Scratchスクリプトクイズ #3221 より:
以下のようになっているようです。
・通常、即、頭から再実行される
・待ち状態のときは、解除に1フレーム?を要してから、頭から再実行される
私は前者だけだと思っていたのですが、後者のパターンもあるようです。
サンプルを作ったので試してみてください。
メッセージ処理中に同じメッセージを受信したときの動作
これは今まで出ていなかった情報かと思います。
メッセージの受信処理が完了していないときに 再度メッセージを受け取った場合の動作は この動作は
メッセージの受信処理が完了していないときに再度メッセージを受け取った場合の動作(再度、頭から実行される)と
「ずっと」による待ちの処理、
それに[スプライトの他のスクリプトを止める v]の動作が絡んで、かなりトリッキーになっていますね。
実行環境に依存するかもしれません。
以下のようになっているようです。
・通常、即、頭から再実行される
・待ち状態のときは、解除に1フレーム?を要してから、頭から再実行される
私は前者だけだと思っていたのですが、後者のパターンもあるようです。
サンプルを作ったので試してみてください。
メッセージ処理中に同じメッセージを受信したときの動作
これは今まで出ていなかった情報かと思います。
- abee
-
1000+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
Scratchのソースコードライセンスが、三条項BSDライセンスからAGPLに変更されました。今後、MODにソースコード公開義務が生じます。これはソースコードを公開していない一部の商用MODに影響があると思われます。
Open Source Policy — Scratch Foundation
一般の利用者には影響ありません。
今回の変更にScratch Blocksは含まれていないため、見た目がScratchと同じだけのMakeCodeなどにも影響はありません。ScratchJr、Scratch 1.4、2.0も変わっていません。
Open Source Policy — Scratch Foundation
一般の利用者には影響ありません。
今回の変更にScratch Blocksは含まれていないため、見た目がScratchと同じだけのMakeCodeなどにも影響はありません。ScratchJr、Scratch 1.4、2.0も変わっていません。
Last edited by abee (Nov. 27, 2024 05:53:57)
- 5656godzilla
-
13 posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
enterキーなど一部の元々Scratchの判定で判定することができるキーはハックで出せるみたいです。
だれでも知ってると思うけど((((
<key [enter v] pressed?>などのブロックですね。
when [enter v] key pressed
だれでも知ってると思うけど((((
- TNTSuperMan
-
100+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
#897
enterを入れるとエンターキーを検出できるハックは仕様っぽいです。
scratch-vm/src/io/keyboard.js
キーの部分がenterになっているとEnterキーを検出するようなコードが見られました。
それを言うと以下のようなものもあります。
なので@等の記号は使えるが他のAltやCtrlは使えない、ということでしょうか。
追記:5年前にspl237さんが意図的にenterキーを検出するコードを入れいていました。
enterを入れるとエンターキーを検出できるハックは仕様っぽいです。
scratch-vm/src/io/keyboard.js
キーの部分がenterになっているとEnterキーを検出するようなコードが見られました。
それを言うと以下のようなものもあります。
<key [space] pressed?>//スペースキーそしてここ以外で2文字以上のキーが指定されたらブロックするようになってました。
<key [left arrow] pressed?>//左矢印キー
なので@等の記号は使えるが他のAltやCtrlは使えない、ということでしょうか。
追記:5年前にspl237さんが意図的にenterキーを検出するコードを入れいていました。
Last edited by TNTSuperMan (Nov. 27, 2024 11:07:59)
- TNTSuperMan
-
100+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
Last edited by TNTSuperMan (Nov. 28, 2024 00:44:05)
- _0xfffrog-
-
100+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
#893
「自分で作るしかない」らしいです。わたしが探した限りでは誰もapiのクローンを公開していないようです。
ここで“backend systems”とはapi.scratch.mit.edu, project.scratch.mit.edu, scratch.mit.edu/site-api/*, clouddata.scratch.mit.eduなどのことです。 To use it for your own project, you would have to look at all the places it makes backend calls, and create your own backend systems to perform those functions.
「自分で作るしかない」らしいです。わたしが探した限りでは誰もapiのクローンを公開していないようです。
- TNTSuperMan
-
100+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
#901
一応質問しますが、そのAPI群を作って公開することは許可されていますよね…?
一応質問しますが、そのAPI群を作って公開することは許可されていますよね…?
- _0xfffrog-
-
100+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
#892 (旧#903) 10postを一気に削除とはこれ如何に
@Voxaliceさんによると、
“Manage to recreate and share” すれば最初の公開者になれます。
@Voxaliceさんによると、
とのことで、STからの公式発言ではないものの、わたしはこの内容に納得がいきました。 Yes, if you manage to recreate Scratch's back-end code, you would be allowed to share that.
The reason that there are no public recreations of Scratch's API is because nobody has shared one yet.
訳) スクラッチのバックエンドをもし再現して構築できたなら、公開してもよいでしょう。
Scratch APIを再現したものがまだ公開されていないのは、だれもまだ共有していないからです。
“Manage to recreate and share” すれば最初の公開者になれます。
- TNTSuperMan
-
100+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
#892
了解です。
bun+honoとかで作ってみようかな。
でも
つまりまだ誰も公開してないってだけなんですね。
了解です。
bun+honoとかで作ってみようかな。
でも
Scratch APIを再現したものがまだ公開されていないのは、だれもまだ共有していないからです。っていうのは小泉構文を連想しました

- nakasyou1103
-
68 posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
Scratch のプロジェクトページから任意のコンポーネントを取得することに成功したので共有します。
removed
export interface ReactFiber { child: ReactFiber | null sibling: ReactFiber | null // biome-ignore lint/complexity/noBannedTypes: type: string | Function // biome-ignore lint/complexity/noBannedTypes: elementType: Function & { propTypes: Record<string, unknown> } } export function getReactRootFiber() { const app = document.getElementById('app') if (!app) { return null } // biome-ignore lint/suspicious/noExplicitAny: const root = (app as any)._reactRootContainer._internalRoot .current as ReactFiber if (!root) { return null } return root } export function getSpecifiedFiber( root: ReactFiber, cond: (fiber: ReactFiber) => boolean, ) { const stack = [root] while (true) { const fiber = stack.pop() if (!fiber) { return null } if (cond(fiber)) { return fiber } if (fiber.child) { stack.push(fiber.child) } if (fiber.sibling) { stack.push(fiber.sibling) } } }
removed
Last edited by nakasyou1103 (May 6, 2025 04:14:29)
- inoking
-
1000+ posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
みなさんへ:
システムの改ざんを可能とするような情報は決して投稿しないでください。
#1 にも追記します(こんなことを書かないといけないとは (-_-) )。
システムの改ざんを可能とするような情報は決して投稿しないでください。
#1 にも追記します(こんなことを書かないといけないとは (-_-) )。
- kuriiiiii
-
3 posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
Last edited by kuriiiiii (May 6, 2025 07:05:43)
- kuriiiiii
-
3 posts
Scratch 3.0 をハック(動作や構造を解析すること)しよう!
なるほど、クラウド変数の改ざんはスクラッチの何らかのルールやコミュニティーガイドラインに違反する行為なのですか?もしそうであるなら対処方法を教えていただきたいです。