Discuss Scratch

hhayyatto
Scratcher
1000+ posts

Scratch2.0をModする会

これはどうでしょう。
[リスト1v] の(1)番目を[リスト2v]の(1)番目と入れ替える]

hha ha hhayy hayy hhay hh hhayya haya hhayyat hhayyatt hhayyatta hhayyattoカラーズCOLOR colour色קאליר こちらは思案(私語は慎むように
hyde::looks//8=72 3=12 5=30 12=何? その名も、⏯⚠️ウクライナ色
ウクラ███#1の注意事項は読みました Yoylecake!!!
⚠️イナ色███問:この字の読み方を答えなさい。「宇柳貝」
1+2+3+4+…=-1/12=それマジで言ってる? :‏) HSPの教科書が買えない
masa2004
Scratcher
1000+ posts

Scratch2.0をModする会

hhayyatto wrote:

これはどうでしょう。
[リスト1v] の(1)番目を[リスト2v]の(1)番目と入れ替える]
(1 v) 番目 [リスト1 v] を ((1 v) 番目( [リスト2 v] ) :: list) で置き換える::list
これの事ですね。

ウワーー
CommandSlash017
Scratcher
500+ posts

Scratch2.0をModする会

masa2004 wrote:

hhayyatto wrote:

これはどうでしょう。
[リスト1v] の(1)番目を[リスト2v]の(1)番目と入れ替える]
(1 v) 番目 [リスト1 v] を ((1 v) 番目( [リスト2 v] ) :: list) で置き換える::list
これの事ですね。
いや、
[SaveData v] を ((1 v) 番目( [list1 v] ) :: list) にする
(1 v) 番目( [list1 v] )を ((1 v) 番目( [list2 v])) で置き換える
(1 v) 番目( [list2 v] )を (SaveData) で置き換える

assc
Scratcher
1000+ posts

Scratch2.0をModする会

MMGISS wrote:


スクラッチで自分のブロックを作る

ここではScratch2.0をModします。
簡単に言えば自分のブロックを作れるんです。
もし間違いがあれば言ってください

Scratchの内部では ActionScript が使われています。まあこれをすでに覚えてれば敵なしですね。

ソースコードを手にいれる
  1. まずgitをインストール。
  2. 以下のコマンドを実行。
    git clone https://github.com/LLK/scratch-flash

    Scratchをコンパイルする

  3. ターミナルを開く。
  4. ディレクトリをスクラッチのソースを含む場所にする。
    cd <path to source code>
    (例)desktop/Scratch/Modding/scratch-flash-developなら
    cd desktop
    cd Scratch
    cd modding
    cd scratch-flash-develop
    と打つ
  5. 以下の文を実行する。
    Unix-like OSを使ってるなら
    ./gradlew build
    Windowsなら
    gradlew.bat build
  6. 全部できたら、Scratchがbuild/11.6/Scratch.swfを見つけてくれます。

参照:https://scratch.mit.edu/discuss/post/324190/
英語版の古い方法リンクはどこに繋がってますか?
Postino
Scratcher
4 posts

Scratch2.0をModする会

takutok wrote:

バンドルした exe は adt コマンドで作れますよ。
そんなに難しくないです。
adtについてアレコレ調べながら試してみているのですが、どうもうまくいきません……。

エラーメッセージとして
Descriptor cannot be parsedScratch.swf: error 100: Descriptor cannot be parsed
が表示されるので、アプリケーション記述子あたりが怪しいと思ってはいるんですが、そこで詰まってしまっています。
application.xmlを自作する必要があるんでしょうか。
それとも、Scratch 2\META-INF\AIR\application.xmlあたりをモニョモニョするんでしょうか。
takutok
Scratcher
8 posts

Scratch2.0をModする会

Postino wrote:

takutok wrote:

バンドルした exe は adt コマンドで作れますよ。
そんなに難しくないです。
adtについてアレコレ調べながら試してみているのですが、どうもうまくいきません……。

エラーメッセージとして
Descriptor cannot be parsedScratch.swf: error 100: Descriptor cannot be parsed
が表示されるので、アプリケーション記述子あたりが怪しいと思ってはいるんですが、そこで詰まってしまっています。
application.xmlを自作する必要があるんでしょうか。
それとも、Scratch 2\META-INF\AIR\application.xmlあたりをモニョモニョするんでしょうか。

エラーはおそらく application.xml の指定が間違っているか、xml の記述が間違っています。
オフライン版に元からある applicartion.xml をそのまま流用できます。
ただAir SDKのバージョンによっては application xmlns のバージョンを変更しないとxmlのエラーになった覚えがあります。
Postino
Scratcher
4 posts

Scratch2.0をModする会

takutok wrote:

エラーはおそらく application.xml の指定が間違っているか、xml の記述が間違っています。
オフライン版に元からある applicartion.xml をそのまま流用できます。
ただAir SDKのバージョンによっては application xmlns のバージョンを変更しないとxmlのエラーになった覚えがあります。

ありがとうございます! 無事にAIRバンドル版のScratch 2.exeができました。
これでやっとAIRインストールを許可してくれない&オフラインな教室でも使える……
CommandSlash017
Scratcher
500+ posts

Scratch2.0をModする会

Git入れたばかりで何も分かっていないです。Git bashでGitHubからコードを入手するまではうまくいった(と思う)のですが、ビルドの仕方が分かりません。My browser / operating system: Windows NT 10.0 です。

abee
Scratcher
1000+ posts

Scratch2.0をModする会

MMGISS
Scratcher
1000+ posts

Scratch2.0をModする会

abee wrote:

分かりやすい記事がありました。

スクラッチのModding環境をつくろう : ロジックラボ for kids
Scratch Moddingで新しいブロックを作ろう : ロジックラボ for kids
すごい!初めて BUILD SUCCESSFUL が出ました!

しかしダメです!全然Scratch.swfに反映されません!
そもそもどうやったら反映できるんですか?
どなたかビルドできた人お願いします…

Last edited by MMGISS (July 4, 2017 12:03:17)

MMGISS_sub
Scratcher
43 posts

Scratch2.0をModする会

MMGISS wrote:

abee wrote:

分かりやすい記事がありました。

スクラッチのModding環境をつくろう : ロジックラボ for kids
Scratch Moddingで新しいブロックを作ろう : ロジックラボ for kids
すごい!初めて BUILD SUCCESSFUL が出ました!

しかしダメです!全然Scratch.swfに反映されません!
そもそもどうやったら反映できるんですか?
どなたかビルドできた人お願いします…
おおおおお!できました!!
Scratch Moddingで新しいブロックを作ろうの記事にはありませんでしたが、
ビルドして動作確認しようの項目にはまずbuild.gradlewでScratchをビルドする必要があるのですね
これでついに私にもできました!!ありがとうございます!

ちなみにbuild.gradlewのビルドはatomでも可能です!

Last edited by MMGISS_sub (July 10, 2017 12:16:43)

MMGISS_sub
Scratcher
43 posts

Scratch2.0をModする会

今回は記事を参考に
join %s %s %s ブロックと
あったらいいなみたいな感じで carriage return ブロックを作ってみました

きちんと動作します。
ActionScriptのソースがわかりやすいので初心者にもオススメです!
abee
Scratcher
1000+ posts

Scratch2.0をModする会

すばらしい。
もし、気が向いたら、「scratch2.0の提案」で話題になっているいくつかの機能を実装してみるのはいかがでしょう。
たとえば、右クリックメニューでx座標とy座標を入れ替えるとか。
apple502j
Scratcher
1000+ posts

Scratch2.0をModする会

「コンストラクタ関数がクラス ZipIO に指定されていません。」はどうすればいいでしょうか。
My browser / operating system: Windows 7, Firefox 54.0, Flash 26.0 (release 0)

署名は、ディスカッションフォーラムの機能である。署名は、その人のすべての投稿の下部に追加される。署名は、BBCodeで記述できる。 署名を追加/変更/削除したい場合は、ディスカッションフォーラムのホームの一番下に行き、「Change your signature」を押す。署名の大きさは150pxまでである。これには、改行、画像を含む。- Japanese Scratch-Wiki 「署名
MMGISS_sub
Scratcher
43 posts

Scratch2.0をModする会

右クリックして出るメニューはどのファイルにあるのでしょうか?
ShiftMenuで検索しても何にも出なくて…orz
inoking
Scratcher
1000+ posts

Scratch2.0をModする会

MMGISS_sub wrote:

右クリックして出るメニューはどのファイルにあるのでしょうか?
ShiftMenuで検索しても何にも出なくて…orz
src/scratch/BlockMenus.as ではないでしょうか。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている
MMGISS_sub
Scratcher
43 posts

Scratch2.0をModする会

inoking wrote:

MMGISS_sub wrote:

右クリックして出るメニューはどのファイルにあるのでしょうか?
ShiftMenuで検索しても何にも出なくて…orz
src/scratch/BlockMenus.as ではないでしょうか。
みつけました!ありがとうございます!
なんとかして作ってみます!
MMGISS_sub
Scratcher
43 posts

Scratch2.0をModする会

なんだかんだ言って本当に相互変換の仕組みがわかんなかったので今までずっと欲しかったやつ作ってみました。

配列を指定した文字でつなげて文字列型で返すやつです。


こんなこともできちゃいます。
いままで配列全体を文字列型で参照するものといえば、
(list :: list)
これしかなく、また要素をつなげる文字も半角スペースで固定されてました。
これを使えば簡単に配列を取得でき、後者のように買い物リストも簡単に作れます。
もしかしたら、運営に提案してみる価値があるかもしれません。

ちなみにソースはこちらです。
src/Specs.as

src/primitives/ListPrims.as


src/scratch/ScratchObj.as

関数名よくわかんなかったんで適当です許してください
["connect %m.list by %s",								"r", 12, "getList:with:"],
primTable['getList:with:'] = primListWith;
private function primListWith(b:Block):String {
var list:ListWatcher = listarg(b, 0);
if (!list) return '';
return list.contents.join( interp.arg(b, 1) || '' );
}
if ('getList:with:' == op) return [defaultListName(), ',']

Last edited by MMGISS_sub (July 17, 2017 05:18:51)

inoking
Scratcher
1000+ posts

Scratch2.0をModする会

MMGISS_sub wrote:

~略~
いままで配列全体を文字列型で参照するものといえば、
(list :: list)
これしかなく、また要素をつなげる文字も半角スペースで固定されてました。
~略~
本筋でなくてすみません。
どうやると半角スペースで結合できますか?
変数にリストを代入してみたところ間に何も入らずそのままつながりました。

これは署名と呼ばれるもので投稿本文とは関係ありません。
Scratch は「世界最大の子ども向けコーディングコミュニティーで、シンプルなビジュアルインターフェースを持ったコーディング言語」
 つまり「子ども SNS」ではない

・「傾向」とは単に一定の基準で作品を並びかえただけのもので、ランキングでもなんでもないナンバーワンよりオンリーワンを目指してみては?
・「フォロー」とは他の Scratcher が何をしているかを簡単に確認するためのもので、「フォロワー」は「ファン」ではない
・「スタジオ」とは特定のテーマに沿って作品をまとめたり共同制作したりするための場所
・「星」や「ハート」などを何かの見返りとすることは Scratch チームによって禁止されている

Powered by DjangoBB