提供:Japanese Scratch-Wiki

このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
Document stub.png この項目は、書きかけの項目です。この項目に加筆・訂正などをしてくださる協力者を求めています。

このチュートリアルでは、Scratchで3次元パターンを作成する方法について説明する。

3DはScratchでどのように機能するか?

Scratchは主に2Dプロジェクトを対象としているが、スクラッチを使用して3D効果を作成することもできる。これは、x、y、およびz座標を使用してその位置を見つける点を投影することによって実行できる。これを行うには、ペンブロックカスタムブロックを使用する必要がある。

メインスクリプトの作成

まず、次のようにいくつかのカスタムブロックを作成する:

定義 リセット
定義 描く

その後、このスクリプトを作成し、

緑の旗が押されたとき
ペンの色を ((1) から (100) までの乱数) にする
リセット :: custom
ずっと
全部消す
描く :: custom
[デルタ v] を (1) ずつ変える
end

上記のスクリプトは、プロジェクト内のすべてを起動するループである。

変数の準備

次に、変数を準備します。リセット::customカスタムブロックでこのスクリプトを行う。

定義 リセット
[角度 v] を [0] にする
[A v] を [220] にする
[B v] を [160] にする
[r1 v] を ((1) から (100) までの乱数) にする
[r2 v] を ((1) から (100) までの乱数) にする
[デルタ v] を ((1) から (90) までの乱数) にする
x座標を ((A) * ((((角度) * (r1)) + (デルタ)) の [sin v]::operators)) 、y座標を ((B) * ((((角度) * (r2)) + (デルタ)) の [cos v]::operators)) にする
ペンを下ろす
ペンの太さを (50) にする

リセットブロックもパターンを作るので便利だ。

Warning
メモ:
簡単にアクセスできるように、r1変数とr2変数をスライダーにする。

描画スクリプトの作成

次に、カスタムブロックのコードを作成します。このブロック(描く::custom)はより複雑になる。

定義 描く
表示する
全部消す
ペンを下ろす
(360) 回繰り返す
x座標を ((A) * ((((角度) * (r1)) + (デルタ)) の [sin v]::operators)) 、y座標を ((B) * (((angle) * (r2)) の [cos v]::operators)) にする
ペンの太さを (((((1000) - ((A) * ((((角度) * (r1)) + (デルタ)) の [sin v]::operators))) - ((B) * (((角度) * (r2))の [cos v]))) / (150)) の [絶対値 v]::operators) にする
ペンの [明るさ v] を ((-0.5) * (((A) * ((((角度) * (r1)) + (デルタ)) の [sin v])) - ((B) * (((角度) * (r2)) の [cos v])))) にする
[角度 v] を (1) ずつ変える
(10) 歩動かす

立方体を作画する

立方体の作画には

(x)
(y)
(z)
定義 移動(x)(y)(z)

これらブロックが必要だ。 まず定義を作成する


定義 移動(x)(y)(z)
x座標を (((x) / (z)) * (480)) 、y座標を (((y) / (z)) * (480)) にする

次に、このスプリクトを作成する

@greenFlag が押されたとき::events hat
ペンを上げる
ペンの色を [#000000] にする
ペンの濃さを ((z) - ((((z) * (-1)) - (5))の[絶対値 v]::operators)) にする
移動 ((5) + (x)) ((5) + (y)) (z) :: custom
ペンを下ろす
移動 ((-5) + (x)) ((5) + (y)) (z) :: custom
移動 ((-5) + (x)) ((-5) + (y)) (z) :: custom
移動 ((5) + (x)) ((-5) + (y)) (z) :: custom
移動 ((5) + (x)) ((5) + (y)) (z) :: custom
ペンを上げる
移動 ((5) + (x)) ((5) + (y)) ((z) + (15)) :: custom
ペンを下ろす
移動 ((-5) + (x)) ((5) + (y)) ((z) + (15)) :: custom
移動 ((-5) + (x)) ((-5) + (y)) ((z) + (15)) :: custom
移動 ((5) + (x)) ((-5) + (y)) ((z) + (15)) :: custom
移動 ((5) + (x)) ((5) + (y)) ((z) + (15)) :: custom

これで奥行きのある3Dの作画ができる。

サンプルプロジェクト

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。