Discuss Scratch

fugu_fugu
Scratcher
500+ posts

意外と知られていないテクニック集

コスチュームエディターの裏技(?)
横にスクロールしたいけど縦のマウスホイールしかないときはShiftキーを押しながらマウスホイールを回転させると横移動できる。
kksocy
Scratcher
100+ posts

意外と知られていないテクニック集

フォーラムの裏技

wiki(codeは筆者) wrote:

ディスカッションフォーラム
引用時に現れるメッセージ
[メッセージ]
と書くと、画面に表示されないが、引用時には現れる。なお、メッセージは英語で書いてはいけない(予約語の場合不可)。
元リンクScratchの裏技
pd-46
Scratcher
3 posts

意外と知られていないテクニック集

( all) 番目を [list v] から削除する

リストをリセットする。
kouryou118103
Scratcher
1000+ posts

意外と知られていないテクニック集

[all] を [list v] に追加する
ではないですか?
StrongPeanut
Scratcher
1000+ posts

意外と知られていないテクニック集

#2055
以下を読んでください。

pd-46 wrote:

リストをリセットする。
75yakyu-zuki
Scratcher
100+ posts

意外と知られていないテクニック集

(all v) 番目を [list v] から削除する
と言うことでは?
Poteto143
Scratcher
1000+ posts

意外と知られていないテクニック集

ずっと
もし <条件::operators> なら

end
end
定義 <条件>
ずっと
もし <条件> なら

end
end
これらの違いは、前者は「条件」の値が常に変わりうるが、後者は一度実行されたら「条件」の値が引数として一度渡されたものから変わらない。
例えば
定義 進む <条件>
ずっと
もし <条件> なら
(10) 歩動かす
end
end
進む <[スペース v] キーが押された>
これは、実行されたときにスペースキーが押されていれば、後からキーを離してもずっと進み続ける。
逆に、実行されたときにスペースキーが押されていなければ、後からキーを押しても進まない。

Last edited by Poteto143 (Nov. 25, 2021 14:51:30)

yuzupon1133-sub
Scratcher
1000+ posts

意外と知られていないテクニック集

あとから変わらない…何に使うんです?
kuretaka
Scratcher
100+ posts

意外と知られていないテクニック集

#2058
普通にこれでいいと思います。
もし <条件::sensing> なら
ずっと
(10) 歩動かす
end
end
Konbo_Ren
Scratcher
100+ posts

意外と知られていないテクニック集

#2060

kuretaka wrote:

普通にこれでいいと思います。
もし <条件::sensing> なら
ずっと
(10) 歩動かす
end
end
#2058でそれとは違うと既に説明されているので読んでみてください。
次のページかよ….

⇩そういうことか…

Last edited by Konbo_Ren (Dec. 1, 2021 06:34:38)

Poteto143
Scratcher
1000+ posts

意外と知られていないテクニック集

#2058で示した例は、あくまで動作を説明するために挙げただけで、あの例単体で使い道はあるかと言われればないです
inoking
Scratcher
1000+ posts

意外と知られていないテクニック集

ちなみにこれは
プログラミング言語では引数渡しの方式の話で
大別すると「値渡し」と「参照渡し」があります。

直感的で分かりやすいのは「値渡し」ですが
逆に勘違いしやすいところでもあります。
Scratch もそうです。
Poteto143 さんはその特性を説明してくれています。

Last edited by inoking (Nov. 25, 2021 23:42:36)

noyoyama
Scratcher
63 posts

意外と知られていないテクニック集

操作一つずつにクールタイムを設けたい場合
@greenFlagがクリックされたとき
[CT v] のすべてを削除する::list
([操作の数(今回は2)]) 回繰り返す
[0] を [CT v] に追加する
end
ずっと
もし <((1 v) 番目( [CT v] ) :: list) = [0]> なら
...
でなければ
(1 v) 番目( [CT v] )を (((1 v) 番目( [CT v] ) :: list) - (1)) で置き換える
end
もし <((2 v) 番目( [CT v] ) :: list) = [0]> なら
...
でなければ
(2 v) 番目( [CT v] )を (((2 v) 番目( [CT v] ) :: list) - (1)) で置き換える
end
end
yuzupon1133-sub
Scratcher
1000+ posts

意外と知られていないテクニック集


@greenFlagがクリックされたとき
[CT v] のすべてを削除する::list
([操作の数(今回は2)]) 回繰り返す
[0] を [CT v] に追加する
end
ずっと
[i v] を [0] にする
([CT v] の長さ :: list) 回繰り返す
[i v] を (1) ずつ変える
もし <((i) 番目( [CT v] ) :: list) = [0]> なら
...
でなければ
(i) 番目( [CT v] )を (((i) 番目( [CT v] ) :: list) - (1)) で置き換える
end
end
end
:thinking:
noyoyama
Scratcher
63 posts

意外と知られていないテクニック集

なるほど
…の中身はiで変える感じですかね
プログラムが稚拙で申し訳ない

oligami
Scratcher
100+ posts

意外と知られていないテクニック集

軽くするためにはifをできるだけ分けたほうがいい.
また,if-elseは条件式が地味に重いscratchにおいてとても軽いことがわかる.

詳細はコード見て
https://scratch.mit.edu/projects/608934158/editor
inoking
Scratcher
1000+ posts

意外と知られていないテクニック集

oligami wrote:

軽くするためにはifをできるだけ分けたほうがいい.
また,if-elseは条件式が地味に重いscratchにおいてとても軽いことがわかる.
この辺この辺を読んでみてください。
S-1014
Scratcher
100+ posts

意外と知られていないテクニック集

<[0] = [0]>
の右側に
((0) + (1))
を入れ、
<> まで繰り返す

end
に入れる。すると、『ずっと』と同じ役割をする。さらに、0+1を付けたり外したりすることで簡単に繰り返すかどうかを変えられる。
作品のテストをする時に便利。
<[0] = ((0) + (1))> まで繰り返す

end
kouryou118103
Scratcher
1000+ posts

意外と知られていないテクニック集

<[a] = []> まで繰り返す
...
end
でもできます。
Poteto143
Scratcher
1000+ posts

意外と知られていないテクニック集

#2069
僕の場合、スライダー型の変数の最小値を0、最大値を1にして、
もし <(変数) = [0]> なら
[このスクリプト v] を止める
end
ずっと
...
end
というふうに使ってます。

Last edited by Poteto143 (Dec. 1, 2021 06:33:06)

Powered by DjangoBB