Discuss Scratch

haws0873
Scratcher
92 posts

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

前か後ろか判断するプログラム
スプライト1には
when green flag clicked
forever
set [変数 v] to [1]
if <[変数] = [0]> then
say [今前] for (0.1) secs
end
end
スプライト2には
when green flag clicked
forever
set [変数 v] to [0]
if <[変数] = [1]> then
say [今前] for (0.1) secs
end
end
haws0873
Scratcher
92 posts

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

仕組みは背面のスプライトの方のプログラムが優先されるから
追記:全然そんなことなかったです!すみませんでした!
スプライト順(左から右へ)で実行されるので全然違いました!

Last edited by haws0873 (Aug. 15, 2025 11:43:12)

inoking
Scratcher
1000+ posts

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

haws0873 wrote:

前か後ろか判断するプログラム
スプライト1には
when green flag clicked
forever
set [変数 v] to [1]
if <[変数] = [0]> then
say [今前] for (0.1) secs
end
end
スプライト2には
when green flag clicked
forever
set [変数 v] to [0]
if <[変数] = [1]> then
say [今前] for (0.1) secs
end
end
動作を確認してからお願いします。
U-Y-Scratch
Scratcher
500+ posts

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

実は削除(ゴミ箱からも)したプロジェクトを作者なら
  • 見る
  • 編集する
はでき、
  • 公開する
はできない。

ただ、URLを忘れたらアウト。
truck_water
Scratcher
25 posts

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

U-Y-Scratch wrote:

実は削除(ゴミ箱からも)したプロジェクトを作者なら
  • 見る
  • 編集する
はでき、
  • 公開する
はできない。

ただ、URLを忘れたらアウト。

無知だけど自分の作品のゴミ箱から元に戻せばよいのでは?
tuneninemuihito
Scratcher
60 posts

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

truck_water wrote:

無知だけど自分の作品のゴミ箱から元に戻せばよいのでは?
『ゴミ箱からも』の文を読みましたか?
U-Y-Scratch
Scratcher
500+ posts

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

実は「お気に入り」と同じように「好き」をつけたプロジェクトの一覧を見ることができる。
https://scratch.mit.edu/projects/all/<ユーザー名>/loves/
根拠:https://ja.scratch-wiki.info/wiki/好き#好きをつけた作品を確認する方法

Last edited by U-Y-Scratch (Aug. 17, 2025 00:09:54)

Mkants
Scratcher
4 posts

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

ある文字列に特定の文字列が入ることがない場合に、
<((使っていない文字列) と (任意の文字列))に((使っていない文字列)と(判定したい文字列))が含まれる>
とすると、「任意の文字列」の先頭に「判定したい文字列」があるかを調べられる


<([^]と(任意の文字列))に[^Scratch]が含まれる>//先頭にScratchがあるか
<((任意の文字列)と[$])に[Scratch$]が含まれる>//最後にScratchがあるか

<([^]と[123^Scratch])に[^Scratch]が含まれる>//この場合は、「^」以外の文字列(#など)を使いましょう
yuito2013
Scratcher
100+ posts

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

なんと、見つけてしまったんだ。 https://scratch.mit.edu/discuss/search/?action=show_subscriptions これ、フォローしているフォーラムを表示できる!なんか翻訳構文になってしまった、、、早くU-Y-さんみたいに500+postになりたいな、、

Last edited by yuito2013 (Aug. 24, 2025 00:30:21)

inoking
Scratcher
1000+ posts

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

それは
ディスカッションフォーラム から
ページ最下部の
Show your topics/posts

ページ最下部の
Show recent posts
Show unanswered posts
Show your subscribed topics
Show your topics

で表示できます。
他項目についても調べてみるとよいでしょう。

なお、投稿数が増したからと言って信用が増すわけではありません。
大事なのは質です。
23hayabusa
Scratcher
35 posts

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

円を書くときは
go to x: ((半径) * ([sin v] of (θ)::operators)) y: ((半径) * ([cos v] of (θ)::operators))
pen down
repeat ((360) / (精度))
change [θ] by (精度)
go to x: ((半径) * ([sin v] of (θ)::operators)) y: ((半径) * ([cos v] of (θ)::operators))
end
を使えます。
ちなみに、精度の変数の値が小さいほど高精度に、半径の変数の値が大きいほど大きな円になります。
tuneninemuihito
Scratcher
60 posts

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

スプライトを特定の座標に向けたいのなら、
(((((x)-(x座標))/((y)-(y座標)))の[atan v]::operators) + (<((y)-(y座標))<(0)>*(180)))度に向ける
で向けられる。

2つの座標間の距離を求めたいなら、
√(xの差^2)+(yの差^2)なので、
(((((x1)-(x2))*((x1)-(x2)))+(((y1)-(y2))*((y1)-(y2))))の[平方根 v]::operators)
で求められる。

点(x0,y0)を通る直線((x1,y1),(x2,y2))に垂直な線分の長さを求めたいなら、
|(y2-y1)(x0-x1)-(x2-x1)(y0-y1)|/√(x2-x1)^2+(y2-y1)^2なので、
((((((y2)-(y1))*((x0)-(x1)))-(((x2)-(x1))*((y0)-(y1))))の[絶対値 v]::operators)/(((((x1)-(x2))*((x1)-(x2)))+(((y1)-(y2))*((y1)-(y2))))の[平方根 v]::operators)
で求められる。(↑長くて見辛いです、すみません。)

直線((x1,y1),(x2,y2))内の特定の位置に移動したい場合は、(パラメータsを使用)
((x1+s(x2-x1)),(y1+s(y2-y1)))なので、
x座標を((x1)+((s)*((x2)-(x1))))、y座標を((y1)+((s)*((y2)-(y1))))にする
で移動できる。

Last edited by tuneninemuihito (Sept. 19, 2025 14:38:05)

kouryou118103
Scratcher
1000+ posts

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

x1-x2=Δx
y1-y2=Δy
としたら見やすくなるかも
((((Δx)*(Δx))+((Δy)*(Δy)))の[平方根 v]::operators)
同じように
(((((Δy)*((x0)-(x1)))-((Δx)*((y0)-(y1))))の[絶対値 v]::operators)/(((Δx)*(Δx))+((Δy)*(Δy)))の[平方根 v]::operators)
(y2-y1をΔy,x2-x1をΔxにしているけど、絶対値だから関係ない。|A-B| = |-A+B|)

Last edited by kouryou118103 (Aug. 26, 2025 13:44:39)

news_bot
Scratcher
14 posts

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

以下を利用してfps測定できる。

メッセージの受信処理が完了していないときに 再度メッセージを受け取った場合の動作は
・通常、即、頭から再実行される
・待ち状態のときは、解除に1フレーム?を要してから、頭から再実行される

Last edited by news_bot (Aug. 26, 2025 23:22:51)

shunshun16
Scratcher
26 posts

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

ブロック定義をつくるとき
定義 %
と半角で%を打つとブロックがバグる(一か所に集まる)。
tuneninemuihito
Scratcher
60 posts

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

少しテクニックとは違う気もしますが…

<[]に[]が含まれる>
の第2引数が空の場合第1引数に関係なくtureを返すので、注意が必要。

特に、
<[文字列]に([リスト v]の(変数)番目)が含まれる>
等をする際は、リストの長さが十分か確認しないと誤処理の元になる事がある。
tuneninemuihito
Scratcher
60 posts

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

(カウント)

(上限)
までカウントアップする演算(例:上限5 0→1→2→3→4→5→0→1…)は、
[カウント v]を(((カウント)+(1))*<(カウント)<(上限)>)にする
で出来る。
使用例がめっちゃ多いから覚えると便利
taipingu2288
Scratcher
47 posts

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

repeat (3) 
次のコスチュームにする
end
ではなく、
次のコスチュームにする
次のコスチュームにする
次のコスチュームにする
にすることで、置いたブロック分だけコスチュームを“飛ばして”コスチュームを変更できる。

Last edited by taipingu2288 (Aug. 31, 2025 16:15:01)

tuneninemuihito
Scratcher
60 posts

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

taipingu2288 wrote:

repeat (3) 
次のコスチュームにする
end
ではなく、
次のコスチュームにする
次のコスチュームにする
次のコスチュームにする
にすることで、置いたブロック分だけコスチュームを“飛ばして”コスチュームを変更できる。
20を超えるなら定義で再描画せずに実行を使った方が良さそう?
taipingu2288
Scratcher
47 posts

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

tuneninemuihito wrote:

20を超えるなら定義で再描画せずに実行を使った方が良さそう?

20を超えていなくてもブロック数が多いと判断したなら、定義で再描画せずに実行した方がブロック数が少なくて済みます。つまり、「再描画せずに実行」は使うべきです。

Powered by DjangoBB