Discuss Scratch

haws0873
Scratcher
96 posts

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

だんだん減速するアニメーションはスプライトを3つ用意すれば可能
まずスプライト1に
when green flag clicked
forever
wait (0.1) secs
broadcast [please move v]
end
を入れる
スプライト2には
when I receive [please move v]
stop [このスプライトの他のスクリプトを止める v]
forever
glide (1) secs to x: (0) y: (0)
end
にする
スプライト3(動かしたいもの)には
when green flag clicked
forever
go to x: ([x position v] of [スプライト2 v]) y: ([y position v] of [スプライト2 v])
end
を入れる

こんなことしなくてもsinやcosを使えばできそうだけど技術力が足りないのでもしできたら教えて欲しい((((

Last edited by haws0873 (Dec. 20, 2025 09:24:40)

syutoko_44
Scratcher
1 post

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

以下のコードで、16進数→10進数の変換が可能
((1) * (join [0x] (16進数)))

また、同じ要領で、
((1) * (join [0b] (2進数)))

((1) * (join [0o] (8進数)))

も10進数に変換できる。
moyasi_official
Scratcher
100+ posts

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

消去

Last edited by moyasi_official (Dec. 20, 2025 12:51:18)

5656godzilla
Scratcher
15 posts

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

#4680
クラウド変数を変更するとクラウド変数の記録に表示される、という意味でしょう。おそらく…
5656godzilla
Scratcher
15 posts

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

haws0873 wrote:

こんなことしなくてもsinやcosを使えばできそうだけど技術力が足りないのでもしできたら教えて欲しい((((

多分これが一番楽です(x座標の場合)

repeat [20~30程度]
change x by (((目標) - (x position)) / [大きいと遅くなる 1以上にしないと通り過ぎる])
end

Last edited by 5656godzilla (Dec. 20, 2025 22:37:39)

DANGOKYOUDAI
Scratcher
2 posts

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

クローンを多用する作品で役立つテクニック

このスプライトが押されたとき
もし<(コスチュームの [名前 v]) = [クローン1(ここは任意の名前)]> なら
[動作 v]を送る
end

実は『このスプライトが押されたとき』のブロックは、すべてのクローンにも個別に適用されます。
このように『コスチュームの名前』で条件分岐をさせれば、クローンごとに別々のメッセージを送るなど、特定のクローンだけに役割を持たせることが簡単にできます。
変数でID管理をしなくても、見た目でクリック判定を仕分けられるので便利です。

Last edited by DANGOKYOUDAI (Jan. 8, 2026 11:28:37)

odoruari
Scratcher
24 posts

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

DANGOKYOUDAI wrote:

クローンを多用する作品で役立つテクニック

このスプライトが押されたとき
もし<(コスチュームの [名前 v]) = [クローン1]> なら
[動作 v]を送る
end

実は『このスプライトが押されたとき』のブロックは、すべてのクローンにも個別に適用されます。
このように『コスチュームの名前』で条件分岐をさせれば、クローンごとに別々のメッセージを送るなど、特定のクローンだけに役割を持たせることが簡単にできます。
変数でID管理をしなくても、見た目でクリック判定を仕分けられるので便利です。
クローン1というコスチュームを作らなければならないですか?
y_haruka
Scratcher
13 posts

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

(どれかの向き v)へ向ける
は今無いので
([_ran]と [dom_])へ向ける
にすると代用できます

ちなみに
([_ran]と[dom_])へ行く
もできます
mashu_Official
Scratcher
100+ posts

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

#4707
「クローン1」の部分を動作させたいコスチュームの名前に変更します。
onionn5
Scratcher
16 posts

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

テクニック集にこれを乗せていいかわからないけど
when green flag clicked
forever
if <key [右矢印 v] pressed?> then
change [a v] by (2)
end
if <key [左矢印 v] pressed?> then
change [a v] by (-2)
end
set [a v] to ((a) * (0.75))
set x to (a)
end
で滑らかに動くプログラムができる
odoruari
Scratcher
24 posts

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

mashu_Official wrote:

#4707
「クローン1」の部分を動作させたいコスチュームの名前に変更します。
確かにそう
aquamizu
Scratcher
7 posts

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

when green flag clicked
pen down
forever
move (10) steps
turn cw (50) degrees
if on edge, bounce
end

これでもお絵描きできる

Last edited by aquamizu (Dec. 25, 2025 11:21:23)

yakitori10-10
Scratcher
25 posts

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

forever
change x by ((<key [右矢印 v] pressed?> * (動きたい座標の数)) - (<key [左矢印 v] pressed?> * (動きたい座標の数)))
end
(Yも同様)
このようにすればそこそこ少ないブロック数で操作することができます。
全然滑らかじゃないけどね
chutaro5978
Scratcher
100+ posts

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

yakitori10-10 wrote:

このようにすればそこそこ少ないブロック数で操作することができます。
全然滑らかじゃないけどね
分配法則を使い、
(右矢印キーが押された一左矢印キーが押された)*(どれくらい動くか)
のようにすると、もう少し短縮できます。
ブロックを使って説明するのが難しいので、言葉で説明させていただきました。
e1bfd762321e409cee4a
Scratcher
91 posts

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

こうすると、ぬるっとできます。
@greenFlag が押された時::events hat
[X移動量 v]を[0]にする::variables
[Y移動量 v]を[0]にする::variables
[移動量 v]を[2]にする::variables
ずっと{
[X移動量 v]を((<(右向き矢印 v)キーが押された::sensing>-<(左向き矢印 v)キーが押された::sensing>::operators)*(移動量::variables))ずつ変える::variables
[Y移動量 v]を((<(上向き矢印 v)キーが押された::sensing>-<(下向き矢印 v)キーが押された::sensing>::operators)*(移動量::variables))ずつ変える::variables
x座標を(X移動量::variables)ずつ変える::move
y座標を(Y移動量::variables)ずつ変える::move
[X移動量 v]を((((X移動量::variables)*(9)::operators)の[切り下げ v]::operators)/[10]::operators)にする::variables
[Y移動量 v]を((((Y移動量::variables)*(9)::operators)の[切り下げ v]::operators)/[10]::operators)にする::variables
}::control cap loop
itoitomaki
Scratcher
13 posts

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

(<key [右矢印 v] pressed?> - <key [左矢印 v] pressed?>)

上のようなプログラムを組むと、求められる答えが
右矢印キーを押していれば1、
左矢印キーを押していれば-1、
右矢印キーも左矢印キーも押していれば0、
右矢印キーも左矢印キーも押していなくても0になります。
このプログラムはとても便利で、アクションゲームなどを作るときに使う
ブロック数を少なくすることができます。

このプログラムは、Scratchの「ブロックを数字で表すプログラム」が関係しています。
簡単に言えば、Scratchのプログラムは trueを1、falseを0 という数字に変換しているということです。
なので、上にあるプログラムは1と0の引き算で出来ているといえます。
kyokyoro
Scratcher
100+ posts

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

上記の仕様を利用したもので便利なのが↓です。好きな条件文をハットブロックにできます(確かfutonさんが見つけたものだったと記憶しています、元投稿は見つけられませんでした)
[タイマー v] > ((タイマー) - <条件式 ::grey>) のとき
[条件式が満たされた] と言う
条件式がfalseを返す間は(タイマー - 0)となりタイマーの値と等しくなりますが
trueが返された時(タイマー - 1)となりハットブロックが発火します
型変換は色々と略記できたりと便利ですね

Last edited by kyokyoro (Dec. 29, 2025 10:50:24)

e233sesbu
Scratcher
1 post

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

set [ v] effect to (0)
((0) / (1))
をはめるとモノクロになります
e1bfd762321e409cee4a
Scratcher
91 posts

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

#4718
なりません。動作確認してからポストをお願いします。

ちなみに、
[色 v]の効果を((1)/(0)::operators)にする::looks
とすると(例外はありますが)モノクロになります。
mame202406
Scratcher
2 posts

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

リストの中身をすべてコピーする方法と調べたらここに来たんですが
ここはなんですか?

Powered by DjangoBB