提供: Japanese Scratch-Wiki

2018年3月11日 (日) 05:13時点における227kei (トーク | 投稿記録)による版 (削除されたブロック)

この記事は、ブロックを使わずにその機能を再現するスクリプト代用ブロック一覧である。 これらは、どのようにブロックが動作するかを理解し、別のプログラミング言語でブロックを再作成するために使用することができる。


イベントブロック

イベントブロックの代用ブロック

制御ブロック

制御ブロックの代用ブロック

動きブロック

動きブロックの代用ブロック

モーターブロック

モーターブロックの代用ブロック

見た目ブロック

見た目ブロックの代用ブロック

音ブロック

音ブロックの代用ブロック

演算ブロック

演算ブロックの代用ブロック

ペンブロック

ペンブロックの代用ブロック

調べるブロック

調べるブロックの代用ブロック

PicoBoardブロック

PicoBoardブロックの代用ブロック

データブロック

データブロックの代用ブロック

削除されたブロック

削除されたブロックの代用ブロック

実験ブロック

ブロック 回避策
(カメラのモーション::sensing)
(ビデオの [モーション v] \( [このスプライト v] \))
(カメラの向き::sensing)
(ビデオの [向き v] \( [このスプライト v] \))
(カウンター::control)
(カウンター) //変数を使用
カウンターを増加する::control
[カウンター v] を (1) ずつ変える
カウンターをクリア::control
[カウンター v] を [0] にする
<> の間繰り返す {} :: control
<<. . .> ではない> まで繰り返す
. . .
end
for each [v v] in (10) {} :: control
[i v] を [0] にする
(...) 回繰り返す
[i v] を (1) ずつ変える
. . .
end

存在しないブロック

ブロック 回避策
<[ v]を受け取った?::events>
[メッセージ v] を受け取ったとき
[メッセージを受け取った v] を [true] にする
. . .
[メッセージを受け取った v] を [false] にする

または

[メッセージ v] を受け取ったとき
[メッセージを受け取った v] を [true] にする
(0.5)秒待つ
[メッセージを受け取った v] を [false] にする

なら

もし <(メッセージを受け取った) = [true]> なら
. . .

このブロックが存在しないのは、精度が低すぎるからです。上の二つは、メッセージが終了したときの回避策で、緑の旗がクリックされている状態でのみ動きます。 このスクリプトでは、「メッセージ」は、0.5秒間送られます。

@ がクリックされたとき
[メッセージを受け取った v] を [false] にする

[メッセージ v] を受け取ったとき
[メッセージを受け取った v] を [true] にする

そして単純に、

<(メッセージを受け取った) = [true]>

他のメッセージに対しては、falseを返す。

[ほかのすべてのメッセージ (ここは置き換える) v] を受け取ったとき
[メッセージを受け取った v] を [false] にする
[すべてを止めて、もう一度緑の旗を押す v]を止める
[緑の旗がクリックされた v]を送る

メモ:Scratch 1.xのオフラインでのみ動作します。

(1)秒繰り返す{} :: control
タイマーをリセット
<(タイマー) > [1]> まで繰り返す
. . .
end

または

[タイマー offset v] を ((タイマー) + (1)) にする
<(タイマー) > (タイマー offset)> まで繰り返す
. . .
end
spawn {} :: control cstart
[Spawn v] を受け取ったとき
. . .

 [Spawn v]を送る
<クローン?::control>
クローンされたとき
[クローン? v]を[true]にする //「このスプライトのみ」の変数を用意します。クローンでなければ、falseになる。

または

[クローン? v] を [true] にする
[自分自身 v] のクローンを作る
[クローン? v] を [false] にする
x座標を()、y座標を()ずつ変える::motion
x座標を((x座標) + (X))、y座標を((y座標) + (Y))にする

または

x座標を (X) ずつ変える
y座標を(Y)ずつ変える
()秒で x座標を()、 y座標を()ずつ変える::motion
 ()秒で x座標を((x座標) + (X)) y座標を((y座標) + (Y))にする
()秒で()歩動かす::motion
(seconds)秒でx座標を((x座標) + (([sin v]\((向き)\) * (歩数)))、y座標を((y座標) + (([cos v]  \((向き)\)) * (歩数)))にする
x座標()y座標()に向ける::motion
point in 向き (([atan v]\((((X) - (x座標))\) / ((Y) - (y座標)))) + (<(y座標) > (Y)> * (180)))
(x座標()、y座標()との差::sensing)
([へ v]\(((((x座標) - (任意のx)) * ((x座標) - (任意のx)\))) + (((y座標) - (任意のy)) * ((y座標) - (任意のy)))))
<聞いている途中?::sensing>
[聞いている途中? v] を [true] にする
[...]と聞いて待つ
[聞いている途中? v] を [false] にする
<スプライトがクリックされた::sensing>
このスプライトがクリックされたとき
[スプライトがクリックされた v] を [true] にする
<<<マウスが押された> かつ <[マウスのポインター v]に触れた>> ではない>まで待つ
[スプライトがクリックされた v] を [false] にする
すべてのスプライトを表示する::looks
[すべてのスプライトを表示する v]を送る

and

[すべてのスプライトを表示する v] を受け取ったとき //すべてのスプライトに入れること
表示する
前のコスチューム::looks
コスチュームを ((コスチューム #) - (1)) にする
前の背景::looks
背景を((背景 #) - (1))にする

または

背景を[(前の背景の名前) v]にする
(コスチューム名::looks)
([コスチューム名 v]([任意のスプライト v]))
後ろに下がる::looks
([10^ v]\((309)\))層下げる

または

@ がクリックされたとき
[スプライト v] を (1) ずつ変える

全てのスプライトに置く:

((スプライト)- (1))層下げる
(() ^ ():: operators)
([10 ^ v]\(((power)\) * ([log v]\((base)\))))

または

([e ^ v]\(((power) * ([ln v]\((base)\)))\))
Warning メモ: 負の数の累乗には対応していない。(例 (-2)5.
<true::operators>
<<> ではない> //中にブロックは入れない。

または

<[0] = [0]> //両方に同じものを入れる。
<false::operators>
<<<> ではない> ではない> //内側のところにはブロックをいれない。 

または

<<> かつ <>> //中にブロックは入れない。

または

<<> または <>> //中にブロックは入れない。

または

<[0] = [1]>
<[] ≠ []::operators>
<<[] = []> ではない>
<[] ≥ []::operators>
<<[] < []> ではない>

または

<<(入力1) > (入力2)> または <(入力1) = (入力2)>>
<[] ≤ []::operators>
<<[] > []> ではない>

または

<<(入力1) < (入力2)> または <(入力1) = (入力2)>>
(もし <> なら [] でなければ []::operators)
もし <> なら
[report v] を [true] にする
でなければ
[report v] を [false] にする

または

(((true) * <>) + ((false) * <<> ではない>))
Warning メモ: 数字のみ使える。文字列を使いたいときは、一つ目のものを使うこと。
(()番目から()番目\([]\)::operators)
[report v] を [] にする
[count v] を (a)にする // aは一番目のの文字
<(count) = ((b) + (1))> まで繰り返す // bは最後の文字
[report v] を ((report)と(letter (count)((text)))) にする
[count v] を (1) ずつ変える
end
(digit ()\(()\)::operators)
(([floor v](((number)) / ([10 ^ v]\((([floorv]\((digit)\))\) - (1))))) mod (10))
(round () to the nearest ()::operators)
((round ((round what) / (to the nearest))) * (to the nearest))

または

((round ((number) * ([10 ^ v]\((number of places)\)))) / ([10 ^ v]\((number of places)\)))
([ v]の効果::looks)
ずっと
[色 v] の効果を (effect) にする
<音 [ v]が再生されている::音>
[playing v] を [true] にする
終わるまで [任意の音 v] の音を鳴らす
[playing v] を [false] にする
[ v]の音を (1)拍鳴らす::音
[任意の音 v] の音を鳴らす
(1)拍休む
すべての音を止める
(instrument::音)
ずっと
instrument を (instrument) にする
change item (1 v)\([ v]\) by (1)::リスト
(1 v)番目\([任意のリスト v]\)を(((1 v)番目([任意のリスト v]) + (1))で置きかえる
もし <> なら、ずっと {}::control
ずっと
もし <> なら
(::obsolete) がクリックされたとき::hat events
ずっと
タイマーをリセット
end
[タイマー v] > (0.1) のとき
...
(10) + (10) = (10)のとき::hat operators
もし <((10) + (10)) = [10]> なら
<<> xor <>::operators>
<<<bool> = <other bool>> ではない>