Discuss Scratch

nankin
Scratcher
500+ posts

質問コーナー

hhayyatto wrote:

意味不明
そういうのはやめてください。

haru0404 wrote:

変数がーにならなくなってほしいのですがどうすればいいですか?
もし <(変数) = [1]> なら
[変数 v] を [元の値] にする
end
こんな感じでしょうか。
Tarokun
Scratcher
5 posts

質問コーナー

クラウドリストってどうやってつくるんですか?

[変数] を [ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-^\@[;:],./\?><L+*}{`P=~|] にする
とか使っているみたいなんですが
inoking
Scratcher
1000+ posts

質問コーナー

CommandSlash017 wrote:

robo_24 wrote:

CommandSlash017 wrote:

クローンの処理順=クローンされた順 なんでしょうか。何度か検証しましたが環境によって違うかもしれないので質問させて頂きました。
興味深い質問ですね。
測定の基準となるものが必要ですので
コマさんが測定するためのプログラムを公開し、
依頼コーナーに書いてみてはどうでしょうか。

(混乱を避けるため結果記入はプロフかスタジオが望ましいです)
検証用プロジェクトです。検証結果はこのプロジェクトのコメント欄に書いて頂ければいいです。
長いです。
・単なる結果記入ではないこと
・プロジェクトのコメントではフォーマット機能が使えないこと
からここに書きます。

ソースを見ました。
「メッセージを送る」は以下です。
https://github.com/LLK/scratch-flash/blob/develop/src/interpreter/Interpreter.as
579 	public function broadcast(msg:String, waitFlag:Boolean):void { 
...
581 if (activeThread.firstTime) {
...
585 var findReceivers:Function = function (stack:Block, target:ScratchObj):void {
586 if ((stack.op == "whenIReceive") && (stack.args[0].argValue.toLowerCase() == msg)) {
587 receivers.push([stack, target]);
588 }
589 }
590 app.runtime.allStacksAndOwnersDo(findReceivers);
...
605 }
上記から呼ばれる allStacksAndOwnersDo() は以下です。
https://github.com/LLK/scratch-flash/tree/develop/src/scratch/ScratchRuntime.as
1341 	public function allStacksAndOwnersDo(f:Function,setDoObj:Boolean=false):void { 
1342 // Call the given function on every stack in the project, passing the stack and owning sprite/stage.
1343 // This method is used by broadcast, so enumerate sprites/stage from front to back to match Scratch.
...
1346 for (var i:int = stage.numChildren - 1; i >= 0; i--) {
1347 var o:* = stage.getChildAt(i);
1348 if (o is ScratchObj) {
1349 if (setDoObj) currentDoObj = ScratchObj(o);
1350 for each (stack in ScratchObj(o).scripts) f(stack, o);
1351 }
1352 }
...
1356 }
1343 行のコメントのように 1346 行で逆にループを回しています。
これによりメッセージの受け取り順は逆になっているものと思われます。
※ちなみに「前に出す」で表示順序を入れ替えてみましたが結果は変わりませんでした。

クローンの実行順序は私も詳しくは分かっていないのですが
以下で登録された
https://github.com/LLK/scratch-flash/blob/develop/src/Scratch.as
164 	protected function initialize():void { 
...
176 stage.frameRate = 30;
...
209 stage.addEventListener(Event.ENTER_FRAME, step);
...
224 }
以下関数が 1/30 秒毎に実行され
734 	protected function step(e:Event):void { 
735 // Step the runtime system and all UI components.
...
743 }
ここをたどっていくと
threads 配列の中身を順番に実行している処理が見つかります。
https://github.com/LLK/scratch-flash/blob/develop/src//interpreter/Interpreter.as
222 	public function stepThreads():void { 
223 startTime = getTimer();
224 var workTime:int = (0.75 * 1000) / app.stage.frameRate; // work for up to 75% of one frame time
...
228 while ((currentMSecs - startTime) < workTime) {
...
232 for each (activeThread in threads) {
...
234 stepActiveThread();
...
253 }
232 行辺りの記述からクローンは登録された順序で実行されているものと思われます。

まとめ
以上によると実行順序は環境によって変わるものではなく一意に決まります。

ただし、
クローンの実行順序やメッセージの受け取り順序は公開されているものではないので
これらに依存した書き方は避けたほうがよさそうです。
masa2004
Scratcher
1000+ posts

質問コーナー

Dmsahi wrote:

Qグラウドリストの作り方がわかりません

Tarokun wrote:

クラウドリストってどうやってつくるんですか?

[変数 v] を [ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-^\@[;:] にする::variable
とか使っているみたいなんですが
クラウド変数というものがありますよね。それがあるのに、リストはありません。そこで、リストの情報をクラウド変数に保存して、またリストに書き込み直すのを繰り返せばいい!ということなのですが、ここで困った事があります。
クラウド変数には数字しか書き込めないのです。
なので、このままだと「あ」や「ア」はおろか、「A」すらも書き込めないのです。そこで、
1文字1文字に数を当てはめるのです。
tarokunさんが言っていた、
[変数 v] を [ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-^\@[;:] にする::variable
というのは、
A=01,B=,02と、順に数を当てはめるため、使用する文字を番号順に並べた変数を意味しています。
例えば、
[☁リスト用変数 v] を [0001] にする
では、リストに「AB」と書き込むことができます。
さて、こんな感じで作っていると、途中である問題がおきます。
そう、リストの改行ができません。
そこで、改行するポイントに、「00」などを入れます。
「010002」では、

こうなります。これを繰り返すことで、クラウドリストができます。
ただし、この技術を使ってチャットルームを作ることは禁止されています。詳しくは、クラウドのFAQを見てください。
koutilyan
Scratcher
50 posts

質問コーナー

動くアイコンを作るには、どうすればいいですか?
教えてください。
[困った v] キーが押されたとき
x座標で (質問コーナー) にいく
ずっと

わかったまで待つend
koutilyan
Scratcher
50 posts

質問コーナー

koutilyan wrote:

動くアイコンを作るには、どうすればいいですか?
教えてください。
[困った v] キーが押されたとき
x座標で (質問コーナー) にいく
ずっと

わかったまで待つ
koutilyan
Scratcher
50 posts

質問コーナー

koutilyan wrote:

動くアイコンを作るには、どうすればいいですか?
教えてください。
[困った v] キーが押されたとき
x座標で (質問コーナー) にいく
ずっと

わかったまで待つ
mochimochiking
Scratcher
1000+ posts

質問コーナー

masa2004 wrote:

Dmsahi wrote:

Qグラウドリストの作り方がわかりません

Tarokun wrote:

クラウドリストってどうやってつくるんですか?

[変数 v] を [ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-^\@[;:] にする::variable
とか使っているみたいなんですが
クラウド変数というものがありますよね。それがあるのに、リストはありません。そこで、リストの情報をクラウド変数に保存して、またリストに書き込み直すのを繰り返せばいい!ということなのですが、ここで困った事があります。
クラウド変数には数字しか書き込めないのです。
なので、このままだと「あ」や「ア」はおろか、「A」すらも書き込めないのです。そこで、
1文字1文字に数を当てはめるのです。
tarokunさんが言っていた、
[変数 v] を [ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890-^\@[;:] にする::variable
というのは、
A=01,B=,02と、順に数を当てはめるため、使用する文字を番号順に並べた変数を意味しています。
例えば、
[☁リスト用変数 v] を [0001] にする
では、リストに「AB」と書き込むことができます。
さて、こんな感じで作っていると、途中である問題がおきます。
そう、リストの改行ができません。
そこで、改行するポイントに、「00」などを入れます。
「010002」では、

こうなります。これを繰り返すことで、クラウドリストができます。
ただし、この技術を使ってチャットルームを作ることは禁止されています。詳しくは、クラウドのFAQを見てください。
正確には荒れる恐れのあるチャットルームが禁止されています。
hota1024さんのこれのように使える言葉が制限されたものはOKです。
masa2004
Scratcher
1000+ posts

質問コーナー

koutilyan wrote:

koutilyan wrote:

動くアイコンを作るには、どうすればいいですか?
教えてください。
[困った v] キーが押されたとき
x座標で [質問コーナー v] にいく::motion
ずっと

わかったまで待つ::control
end
「edit」で直すことができます。
gifアニメという、パラパラ漫画のようなものを使います。
ひとコマずつ絵を描き、それをつなげます。
このサイトなどで作ることができます。
nankin
Scratcher
500+ posts

質問コーナー

koutilyan wrote:

動くアイコンを作るには、どうすればいいですか?
教えてください。
ここなどで作れます。
「ファイルを選択」をクリックして、使いたい画像を選んでください。
mikikoii
Scratcher
1000+ posts

質問コーナー

koutilyan wrote:

動くアイコンを作るには、どうすればいいですか?
教えてください。
[困った v] キーが押されたとき
x座標で (質問コーナー) にいく
ずっと

わかったまで待つend
ここがいいです。
注意:同じ画像を10枚連続でやらないと1病に一回変わる画像になりません。そのままだとScratchのバグ?で早くなってしまいます。

Last edited by mikikoii (June 25, 2017 10:04:09)

masa2004
Scratcher
1000+ posts

質問コーナー

mikikoii wrote:

koutilyan wrote:

動くアイコンを作るには、どうすればいいですか?
教えてください。
[困った v] キーが押されたとき
x座標で (質問コーナー) にいく
ずっと

わかったまで待つend
ここがいいです。
注意:同じ画像を10枚連続でやらないと1病に一回変わる画像になりません。そのままだとScratchのバグで早くなってしまいます。
「アニメーション間隔」を1000にすれば1票になると思います。
koutilyan
Scratcher
50 posts

質問コーナー

masa2004 wrote:

koutilyan wrote:

koutilyan wrote:

動くアイコンを作るには、どうすればいいですか?
教えてください。
[困った v] キーが押されたとき
x座標で [質問コーナー v] にいく::motion
ずっと

わかったまで待つ::control
end
「edit」で直すことができます。
gifアニメという、パラパラ漫画のようなものを使います。
ひとコマずつ絵を描き、それをつなげます。
このサイトなどで作ることができます。
有難うございます。おかげさまで自分にとってとてもいいのができました。
inoking
Scratcher
1000+ posts

質問コーナー

mikikoii wrote:

注意:同じ画像を10枚連続でやらないと1病に一回変わる画像になりません。そのままだとScratchのバグで早くなってしまいます。
本当にバグですか?gifのフォーマットは合っていますか?
CommandSlash017
Scratcher
500+ posts

質問コーナー

inoking wrote:

CommandSlash017 wrote:

robo_24 wrote:

CommandSlash017 wrote:

クローンの処理順=クローンされた順 なんでしょうか。何度か検証しましたが環境によって違うかもしれないので質問させて頂きました。
興味深い質問ですね。
測定の基準となるものが必要ですので
コマさんが測定するためのプログラムを公開し、
依頼コーナーに書いてみてはどうでしょうか。

(混乱を避けるため結果記入はプロフかスタジオが望ましいです)
検証用プロジェクトです。検証結果はこのプロジェクトのコメント欄に書いて頂ければいいです。

クローンの実行順序やメッセージの受け取り順序は公開されているものではないので
これらに依存した書き方は避けたほうがよさそうです。
詳しい回答ありがとうございます。クローンの実行順序を利用して、リスト制御でない(クローン式の)他人のプロジェクトを自動でクリアするAIを作成しようとしていたので、これで解決いたしました。皆様ありがとうございました。なお検証プロジェクトについては今後も公開しておく予定です。
PIPOsen
Scratcher
100+ posts

質問コーナー

スタジオの「Managers」と「Curators」って何が違うんですか?
 Managersはスタジオを開いた人だと思ったんですけど、
二人以上いるスタジオもあるんですよね…
 それで、Curators の招待方法は分かったのですが、
Managers の招待の方法がわかりません。教えてください。
nankin
Scratcher
500+ posts

質問コーナー

PIPOsen wrote:

スタジオの「Managers」と「Curators」って何が違うんですか?
 Managersはスタジオを開いた人だと思ったんですけど、
二人以上いるスタジオもあるんですよね…
 それで、Curators の招待方法は分かったのですが、
Managers の招待の方法がわかりません。教えてください。
Manager(マネージャー)はスタジオのタイトルなどを変更したり、Curator(キュレーター)を招待したりできます。
キュレーターは作品の追加、削除(制限あり)ができます。
誰かをマネージャーにするには、その人がキュレーターである必用があります。キュレーターの一覧を見て、アイコンにマウスを近づけると「Promote」と書いてあるボタンが出てくるので、それを押してください。
masa2004
Scratcher
1000+ posts

質問コーナー

PIPOsen wrote:

スタジオの「Managers」と「Curators」って何が違うんですか?
 Managersはスタジオを開いた人だと思ったんですけど、
二人以上いるスタジオもあるんですよね…
 それで、Curators の招待方法は分かったのですが、
Managers の招待の方法がわかりません。教えてください。
マネージャーとキュレータの違い
マネージャー→スタジオ名変更、説明変更、キュレータの除名、サムネイル変更、キュレータをマネージャに昇格、キュレータの招待、作品の追加ができる
キュレータ→サムネイル変更、キュレータの正体、作品の追加ができる
キュレータをマネージャに昇格

Last edited by masa2004 (June 25, 2017 10:20:37)

PIPOsen
Scratcher
100+ posts

質問コーナー

@nankinさん、@masa2004さん
ありがとうございます。マネージャーは信用できる人がよさそうですね。

(´・ω・`)

Last edited by PIPOsen (June 26, 2017 08:36:22)

Dmsahi
Scratcher
49 posts

質問コーナー

PIPOsen wrote:

スタジオの「Managers」と「Curators」って何が違うんですか?
 Managersはスタジオを開いた人だと思ったんですけど、
二人以上いるスタジオもあるんですよね…
 それで、Curators の招待方法は分かったのですが、
Managers の招待の方法がわかりません。教えてください。
Managers=マネージャー
Curators=キューレター
Curatorsにマウスのポインターを当てた時、なんか出てくるので、それ押してください

Powered by DjangoBB