- 1. スクラッチで順次処理を学ぼう!ネコを左右に動かすアニメーションの作り方【初心者向け】
- 2. スクラッチでネコが正方形に動くアニメーションの作り方|座標と向きの使い方
- 3. スクラッチでネコが左右にスケートするアニメーションの作り方|繰り返しの使い方
- 4. スクラッチでネコが走るアニメーションの作り方|コスチューム切り替えの使い方
- 5. スクラッチでネコがランダムな速さで走るアニメーションの作り方|乱数の使い方
- 6. スクラッチでロケットを矢印キーで動かす作り方|条件分岐の使い方
- 7. スクラッチで重力ゲームの作り方|もし〜なら・でなければブロック入門
- 8. スクラッチでスプライト同士がメッセージを送り合う作り方|みんなであいさつ
- 9. スクラッチでキャラが順番に集合するアニメの作り方|みんな集合
- 10. スクラッチで分裂するネコのアートの作り方【クローン入門】
- 11. スクラッチでネコの分身を飛ばす作り方【クローン入門】
- 12. スクラッチで音付きアニメーション!2台の車が走り抜ける作り方
- 13. スクラッチでペン拡張機能のスタンプを使った星のランダムアートの作り方
- 14. スクラッチのペン拡張機能を使って正三角形を描く方法と外角の仕組みを解説
- 15. スクラッチで足し算プログラムの作り方【変数と聞いて待つブロック入門】
- 16. スクラッチでサイコロシミュレーターの作り方│乱数とリストを使いこなそう
- 17. スクラッチでリスト操作11種類を完全マスターする作り方|宇宙船クルー名簿チュートリアル
- 18. スクラッチでペンとブロック定義を使った三角形・四角形の描き方
- 19. スクラッチでリンゴキャッチゲームの作り方!矢印キーとタイマーのアクションゲーム
- 20. スクラッチでネコ追跡ゲームの作り方|マウスで逃げ切る30秒サバイバル
- 21. スクラッチで攻撃シューティングゲームの作り方|クローンと確率でバトル設計
- 22. スクラッチで5秒ぴったり当てゲームの作り方|タイマーと入れ子条件分岐を学ぼう
- 23. スクラッチでカスタムブロック(関数)の作り方|足し算・引き算ツール入門 (いまここ)
さぁ、スクラッチでナニ作る!?
動画で見てみよう
チュートリアルの元になった作品
今回の目標
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1素材量の入力
準備
スプライト「錬金術師」を開く
| スプライトについて |
|---|
| 素材の合成・分解を行う錬金術師スプライト。2つの素材量を入力として受け取り、合成または分解を選択して計算結果を表示する。 |
| どんな役割か |
| 2つの素材を合わせたり分けたりする錬金術師を作るよ!足し算で合成・引き算で分解の2パターンを作っていこう。 |
変数「素材1の量」を追加
1つ目の素材量を保存する変数。ユーザーが入力した数値が格納される。
実装
錬金術師に素材を渡すところからスタート。 が押されたときで旗が押されたら、( ) と聞いて待つを使って1つ目の素材量を聞くんだ。
入力された値は( ) を ( ) にするで「素材1の量」変数に保存しておくんだ。答えを変数にとっておかないと、次の質問をした瞬間に前の答えが消えちゃうんだよ。
#22つ目の素材量
準備
変数「素材2の量」を追加
2つ目の素材量を保存する変数。ユーザーが入力した数値が格納される。
実装
さっきと同じ流れで( ) と聞いて待つと( ) を ( ) にするを使って、答えを「素材2の量」変数に入れるよ。1つ目の答えはもう「素材1の量」に保存済みで、もし変数に入れてなかったら次の質問で「答え」が上書きされて1つ目の数値を失ってしまうから、この手順が大事なんだ。
#3操作を選ばせる
「合成なら1、分解なら2を入力して下さい。」と( ) と聞いて待つで聞いて、もし ( ) ならで答えが1かどうか判定するよ。数字で選択肢を振り分けるのは、ユーザー入力で処理を切り替える基本パターンだね。
#4「合成する」の定義
準備
カスタム定義「合成する」を追加
素材1と素材2を足し算で合成し、結果を2秒間表示するプロシージャ。
変数「計算結果」を追加
合成(足し算)または分解(引き算)の計算結果を保存する変数。
実装
メインの流れから離れて、カスタムブロック「合成する」を定義していくよ。定義 ( )で新しいブロックの入り口を作るんだ。
中身はシンプルで、「素材1の量」と「素材2の量」を( ) + ( )で足して、結果を「計算結果」変数に入れるだけ。
#5計算式をまるごと表示
( ) と ( ) 秒言うの中に( ) と ( )を4重にネストして、変数と「+」「=」の記号をつなげていくよ。1つのブロックで2つしかくっつけられないから、4つのブロックで5つのパーツを順番に結合するんだ。
#6合成を実行する
( )で「合成する」を実行するよ。プレビューで2つの数字を入力して「1」を選んでみて。足し算の式と結果がバッチリ表示されるはず。
#7分解の条件分岐
さっきと同じようにもし ( ) ならで答えが2かどうかを判定するんだ。合成と分解で条件を分けておくと、あとからコードを見たときにどっちの処理かすぐわかるよね。
#8「分解する」の定義
準備
カスタム定義「分解する」を追加
素材1から素材2を引き算で分解し、結果を2秒間表示するプロシージャ。
実装
定義 ( )で定義して、「素材1の量」から「素材2の量」を( ) - ( )で引いた結果を「計算結果」に入れるんだ。足し算と引き算で違うのは演算ブロックだけで、全体の組み立ては同じ。こういう構造の共通点に気づけると、新しい処理を追加するのがどんどんラクになるよ。
#9分解結果の表示
「素材1の量 - 素材2の量 = 計算結果」になるように( ) と ( )をネストして、( ) と ( ) 秒言うで2秒間表示するよ。「+」記号が「-」に変わっただけで、ブロックの組み方はまったく同じだね。
#10分解を実行して完成
( )で「分解する」を実行すれば、これで完成。プレビューで「1」を入力すれば合成、「2」なら分解が動くよ。2つのカスタムブロックが条件で使い分けられる仕組み、うまくできてるよね。
まとめ
「定義する」と「呼び出す」の2ステップで処理を分けるカスタムブロック、うまく使えたかな。合成と分解で構造がほぼ同じだったことに気づいてたら、もう関数の感覚がわかってるってことだよ。これを使いこなせば、長いプログラムもスッキリまとめられるようになるぞ。