ブロックリファレンス
Scratch 3.0 ブロックリファレンス
Section titled “Scratch 3.0 ブロックリファレンス”Scratch 3.0のすべてのブロックの包括的なガイドです。各ブロックの用途、構文、実用的な使用例を分類別に整理しています。
ブロックの基本分類
Section titled “ブロックの基本分類”🎯 ブロックの形状による分類
Section titled “🎯 ブロックの形状による分類”ハットブロック(帽子型)
Section titled “ハットブロック(帽子型)”🎩 形状:上部が丸い帽子のような形🚀 機能:スクリプトの開始点🔗 接続:下部のみ他のブロックと接続可能📍 位置:常にスクリプトの最上部
スタックブロック(積み重ね型)
Section titled “スタックブロック(積み重ね型)”📦 形状:長方形で上下に接続部⚙️ 機能:アクションや命令を実行🔗 接続:上下両方で他のブロックと接続🏗️ 構造:スクリプトの主要な構成要素
Cブロック(C字型)
Section titled “Cブロック(C字型)”🌙 形状:C字型で内部にスペース🔄 機能:他のブロックを包含(ループ、条件分岐)🔗 接続:上下と内部でブロックを接続🎛️ 制御:プログラムの流れを制御
レポーターブロック(報告型)
Section titled “レポーターブロック(報告型)”🔵 形状:楕円形または六角形📊 機能:値を返す(数値、文字列、真偽値)🔗 接続:他のブロックの入力部分に挿入💾 データ:変数や計算結果を提供
🎨 色による分類
Section titled “🎨 色による分類”🔵 動きブロック(青色)
Section titled “🔵 動きブロック(青色)”- スプライトの位置と向きを制御
- 移動、回転、座標設定
🟣 見た目ブロック(紫色)
Section titled “🟣 見た目ブロック(紫色)”- スプライトの外観を変更
- コスチューム、サイズ、効果
🟡 音ブロック(黄色)
Section titled “🟡 音ブロック(黄色)”- 音響効果と音楽
- 音の再生、音量、楽器
🟠 イベントブロック(オレンジ色)
Section titled “🟠 イベントブロック(オレンジ色)”- プログラムの開始トリガー
- クリック、キー入力、メッセージ
🟤 制御ブロック(茶色)
Section titled “🟤 制御ブロック(茶色)”- プログラムの流れを制御
- ループ、条件分岐、待機
🔴 調べるブロック(赤色)
Section titled “🔴 調べるブロック(赤色)”- 情報の取得と判定
- 距離、色、キー状態
🟢 演算ブロック(緑色)
Section titled “🟢 演算ブロック(緑色)”- 数学的計算と論理演算
- 四則演算、比較、文字列操作
🔵 変数ブロック(青色)
Section titled “🔵 変数ブロック(青色)”- データの保存と管理
- 変数、リスト
🟣 ブロック定義(紫色)
Section titled “🟣 ブロック定義(紫色)”- カスタムブロックの作成
- 関数的な機能
動きブロック 🔵
Section titled “動きブロック 🔵”「○歩動かす」
Section titled “「○歩動かす」”🎯 用途:スプライトを現在の向きに移動📝 構文:[数値] 歩動かす💡 例:10 歩動かす🔧 応用:キャラクターの歩行、弾の移動
実用例:
// キャラクターの連続移動ずっと 10 歩動かす もし <端に触れた> なら 跳ね返る 終わり終わり
「右に○度回す」「左に○度回す」
Section titled “「右に○度回す」「左に○度回す」”🎯 用途:スプライトの向きを変更📝 構文:右に [数値] 度回す / 左に [数値] 度回す💡 例:右に 90 度回す🔧 応用:方向転換、回転アニメーション
実用例:
// 時計の針の動きずっと 右に 6 度回す // 1分で360度 1 秒待つ終わり
「x座標を○、y座標を○にする」
Section titled “「x座標を○、y座標を○にする」”🎯 用途:スプライトを指定座標に瞬間移動📝 構文:x座標を [数値] 、y座標を [数値] にする💡 例:x座標を 0 、y座標を 0 にする🔧 応用:初期位置設定、テレポート
実用例:
// ゲーム開始時の初期化緑の旗がクリックされたときx座標を 0 、y座標を 0 にする向きを 90 度にする
「○秒でx座標を○、y座標を○に変える」
Section titled “「○秒でx座標を○、y座標を○に変える」”🎯 用途:指定時間で滑らかに移動📝 構文:[数値] 秒でx座標を [数値] 、y座標を [数値] に変える💡 例:2 秒でx座標を 100 、y座標を 50 に変える🔧 応用:滑らかなアニメーション、演出
実用例:
// 滑らかな移動アニメーションスペース キーが押されたとき1 秒でx座標を 100 、y座標を 100 に変える1 秒でx座標を -100 、y座標を -100 に変える
「x座標を○ずつ変える」「y座標を○ずつ変える」
Section titled “「x座標を○ずつ変える」「y座標を○ずつ変える」”🎯 用途:現在位置から相対的に移動📝 構文:x座標を [数値] ずつ変える💡 例:x座標を 5 ずつ変える🔧 応用:連続移動、重力効果
実用例:
// 重力のシミュレーション緑の旗がクリックされたとき変数 [落下速度] を 0 にするずっと 変数 [落下速度] を 0.5 ずつ変える y座標を 変数 [落下速度] ずつ変える もし <色 [緑] に触れた> なら 変数 [落下速度] を 0 にする 終わり終わり
「○度に向ける」
Section titled “「○度に向ける」”🎯 用途:スプライトを指定方向に向ける📝 構文:[数値] 度に向ける💡 例:90 度に向ける(右向き)🔧 応用:方向設定、照準合わせ
方向の基準:
⬆️ 0度:上➡️ 90度:右⬇️ 180度:下⬅️ -90度(270度):左
「○へ向ける」
Section titled “「○へ向ける」”🎯 用途:他のスプライトやマウスポインターに向ける📝 構文:[スプライト/マウスのポインター] へ向ける💡 例:マウスのポインター へ向ける🔧 応用:追跡、照準システム
実用例:
// 敵キャラクターがプレイヤーを追跡ずっと プレイヤー へ向ける 3 歩動かす 0.1 秒待つ終わり
「もし端に触れたなら、跳ね返る」
Section titled “「もし端に触れたなら、跳ね返る」”🎯 用途:画面端での反射処理📝 構文:もし <端に触れた> なら 跳ね返る💡 例:ボールの跳ね返り🔧 応用:物理シミュレーション、ゲーム境界
実用例:
// 跳ね返るボールずっと 5 歩動かす もし <端に触れた> なら 跳ね返る 終わり終わり
回転スタイル
Section titled “回転スタイル”「回転方法を○にする」
Section titled “「回転方法を○にする」”🎯 用途:スプライトの回転方法を設定📝 構文:回転方法を [自由に回転/左右のみ/回転しない] にする💡 例:回転方法を 左右のみ にする🔧 応用:キャラクターの向き制御
回転方法の種類:
🔄 自由に回転:全方向に回転可能↔️ 左右のみ:水平方向のみ反転🚫 回転しない:常に正立状態
見た目ブロック 🟣
Section titled “見た目ブロック 🟣”「表示する」「隠す」
Section titled “「表示する」「隠す」”🎯 用途:スプライトの表示/非表示を制御📝 構文:表示する / 隠す💡 例:ゲーム開始時に隠す🔧 応用:アニメーション、ゲーム状態管理
実用例:
// 点滅効果10 回繰り返す 隠す 0.2 秒待つ 表示する 0.2 秒待つ終わり
コスチューム
Section titled “コスチューム”「コスチュームを○にする」
Section titled “「コスチュームを○にする」”🎯 用途:スプライトの外観を変更📝 構文:コスチュームを [コスチューム名/番号] にする💡 例:コスチュームを "歩く1" にする🔧 応用:アニメーション、状態表現
実用例:
// 歩行アニメーションずっと コスチュームを "歩く1" にする 0.2 秒待つ コスチュームを "歩く2" にする 0.2 秒待つ終わり
「次のコスチュームにする」
Section titled “「次のコスチュームにする」”🎯 用途:コスチュームを順番に切り替え📝 構文:次のコスチュームにする💡 例:連続アニメーション🔧 応用:自動アニメーション、状態循環
サイズと効果
Section titled “サイズと効果”「大きさを○%にする」
Section titled “「大きさを○%にする」”🎯 用途:スプライトのサイズを変更📝 構文:大きさを [数値] % にする💡 例:大きさを 150 % にする🔧 応用:成長効果、強調表現
実用例:
// パルス効果ずっと 大きさを 120 % にする 0.5 秒待つ 大きさを 100 % にする 0.5 秒待つ終わり
「○の効果を○ずつ変える」
Section titled “「○の効果を○ずつ変える」”🎯 用途:視覚効果の適用📝 構文:[効果名] の効果を [数値] ずつ変える💡 例:色 の効果を 25 ずつ変える🔧 応用:特殊効果、状態表現
利用可能な効果:
🌈 色:色相の変更🐟 魚眼:魚眼レンズ効果🌪️ 渦巻き:渦巻き歪み👻 幽霊:透明度の変更✨ 明るさ:明度の変更🔍 モザイク:ピクセル化
レイヤー制御
Section titled “レイヤー制御”「最前面に移動する」「○層前に移動する」
Section titled “「最前面に移動する」「○層前に移動する」”🎯 用途:スプライトの表示順序を制御📝 構文:最前面に移動する / [数値] 層前に移動する💡 例:最前面に移動する🔧 応用:UI要素、重要オブジェクトの強調
実用例:
// クリック時に最前面に移動このスプライトがクリックされたとき最前面に移動する大きさを 110 % にする0.2 秒待つ大きさを 100 % にする
吹き出しと表示
Section titled “吹き出しと表示”「○と言う」「○と○秒言う」
Section titled “「○と言う」「○と○秒言う」”🎯 用途:スプライトにセリフを表示📝 構文:[テキスト] と言う / [テキスト] と [数値] 秒言う💡 例:"こんにちは!" と 2 秒言う🔧 応用:ダイアログ、情報表示
実用例:
// 挨拶システムこのスプライトがクリックされたとき"こんにちは!" と 2 秒言う"今日はいい天気ですね" と 3 秒言う
「○と考える」「○と○秒考える」
Section titled “「○と考える」「○と○秒考える」”🎯 用途:思考泡でテキストを表示📝 構文:[テキスト] と考える / [テキスト] と [数値] 秒考える💡 例:"うーん..." と 2 秒考える🔧 応用:内心の表現、思考プロセス
音ブロック 🟡
Section titled “音ブロック 🟡”「○の音を鳴らす」
Section titled “「○の音を鳴らす」”🎯 用途:音響効果の再生📝 構文:[音名] の音を鳴らす💡 例:ニャー の音を鳴らす🔧 応用:効果音、フィードバック
実用例:
// ボタンクリック音このスプライトがクリックされたときポップ の音を鳴らす
「○の音を最後まで鳴らす」
Section titled “「○の音を最後まで鳴らす」”🎯 用途:音が終わるまで待機して再生📝 構文:[音名] の音を最後まで鳴らす💡 例:音楽 の音を最後まで鳴らす🔧 応用:BGM、長い音響効果
「音量を○%にする」
Section titled “「音量を○%にする」”🎯 用途:音量レベルの設定📝 構文:音量を [数値] % にする💡 例:音量を 50 % にする🔧 応用:音量調整、フェード効果
実用例:
// フェードアウト効果10 回繰り返す 音量を 音量 - 10 にする 0.1 秒待つ終わり
「楽器を○にする」
Section titled “「楽器を○にする」”🎯 用途:MIDI楽器の選択📝 構文:楽器を [楽器名/番号] にする💡 例:楽器を ピアノ にする🔧 応用:音楽作成、効果音の多様化
「○の音符を○拍鳴らす」
Section titled “「○の音符を○拍鳴らす」”🎯 用途:指定音程の音符を演奏📝 構文:[音程] の音符を [拍数] 拍鳴らす💡 例:60 の音符を 0.5 拍鳴らす🔧 応用:メロディー作成、音楽ゲーム
実用例:
// 簡単なメロディー60 の音符を 0.5 拍鳴らす // ド62 の音符を 0.5 拍鳴らす // レ64 の音符を 0.5 拍鳴らす // ミ65 の音符を 1 拍鳴らす // ファ
イベントブロック 🟠
Section titled “イベントブロック 🟠”プログラム開始
Section titled “プログラム開始”「緑の旗がクリックされたとき」
Section titled “「緑の旗がクリックされたとき」”🎯 用途:プログラムの開始トリガー📝 構文:緑の旗がクリックされたとき💡 例:ゲーム初期化🔧 応用:メインプログラム、初期設定
実用例:
// ゲーム初期化緑の旗がクリックされたときスコア を 0 にするx座標を 0 、y座標を 0 にする表示する
ユーザー入力
Section titled “ユーザー入力”「○キーが押されたとき」
Section titled “「○キーが押されたとき」”🎯 用途:キーボード入力への反応📝 構文:[キー名] キーが押されたとき💡 例:スペース キーが押されたとき🔧 応用:ゲーム操作、インタラクション
実用例:
// キャラクター操作上向き矢印 キーが押されたときy座標を 10 ずつ変える
下向き矢印 キーが押されたときy座標を -10 ずつ変える
「このスプライトがクリックされたとき」
Section titled “「このスプライトがクリックされたとき」”🎯 用途:スプライトクリックへの反応📝 構文:このスプライトがクリックされたとき💡 例:ボタン機能🔧 応用:UI要素、インタラクティブオブジェクト
メッセージシステム
Section titled “メッセージシステム”「○を送る」「○を送って待つ」
Section titled “「○を送る」「○を送って待つ」”🎯 用途:スプライト間の通信📝 構文:[メッセージ名] を送る / [メッセージ名] を送って待つ💡 例:"ゲーム開始" を送る🔧 応用:イベント連鎖、状態管理
「○を受け取ったとき」
Section titled “「○を受け取ったとき」”🎯 用途:メッセージの受信処理📝 構文:[メッセージ名] を受け取ったとき💡 例:"ゲーム終了" を受け取ったとき🔧 応用:協調動作、イベント処理
実用例:
// ゲーム状態管理// プレイヤースプライトスペース キーが押されたとき"ジャンプ" を送る
// 効果音スプライト"ジャンプ" を受け取ったときジャンプ音 の音を鳴らす
条件イベント
Section titled “条件イベント”「○>○のとき」
Section titled “「○>○のとき」”🎯 用途:条件が満たされた時の処理📝 構文:[値1] > [値2] のとき💡 例:音量 > 10 のとき🔧 応用:閾値監視、自動反応
実用例:
// 音量レベル監視音量 > 50 のとき"音が大きすぎます" と 2 秒言う音量を 30 にする
制御ブロック 🟤
Section titled “制御ブロック 🟤”「○秒待つ」
Section titled “「○秒待つ」”🎯 用途:指定時間の一時停止📝 構文:[数値] 秒待つ💡 例:1 秒待つ🔧 応用:タイミング制御、アニメーション
実用例:
// 点滅アニメーションずっと 表示する 0.5 秒待つ 隠す 0.5 秒待つ終わり
🎯 用途:無限ループ📝 構文:ずっと [処理] 終わり💡 例:連続移動🔧 応用:ゲームループ、継続処理
「○回繰り返す」
Section titled “「○回繰り返す」”🎯 用途:指定回数の繰り返し📝 構文:[数値] 回繰り返す [処理] 終わり💡 例:10 回繰り返す🔧 応用:アニメーション、反復処理
実用例:
// 正方形を描く4 回繰り返す 100 歩動かす 右に 90 度回す終わり
「○まで繰り返す」
Section titled “「○まで繰り返す」”🎯 用途:条件が満たされるまで繰り返し📝 構文:[条件] まで繰り返す [処理] 終わり💡 例:<端に触れた> まで繰り返す🔧 応用:条件待ち、探索処理
「もし○なら」
Section titled “「もし○なら」”🎯 用途:条件による分岐処理📝 構文:もし [条件] なら [処理] 終わり💡 例:もし <マウスに触れた> なら🔧 応用:判定処理、状態制御
「もし○なら○でなければ○」
Section titled “「もし○なら○でなければ○」”🎯 用途:二択の条件分岐📝 構文:もし [条件] なら [処理1] でなければ [処理2] 終わり💡 例:スコア判定🔧 応用:複雑な判定、状態切り替え
実用例:
// スコア判定もし <スコア > 100> なら "素晴らしい!" と言うでなければ "もう少し頑張って!" と言う終わり
プログラム制御
Section titled “プログラム制御”「○まで待つ」
Section titled “「○まで待つ」”🎯 用途:条件が満たされるまで待機📝 構文:[条件] まで待つ💡 例:<マウスが押された> まで待つ🔧 応用:ユーザー入力待ち、同期処理
「すべてを止める」
Section titled “「すべてを止める」”🎯 用途:プログラムの停止📝 構文:すべてを止める [対象]💡 例:すべてを止める [すべて]🔧 応用:ゲーム終了、緊急停止
停止対象の種類:
🛑 すべて:全てのスクリプト📜 このスクリプト以外:現在のスクリプト以外🎭 このスプライトの他のスクリプト:同一スプライト内の他のスクリプト
「○のクローンを作る」
Section titled “「○のクローンを作る」”🎯 用途:スプライトの複製を作成📝 構文:[スプライト名] のクローンを作る💡 例:自分自身 のクローンを作る🔧 応用:弾の生成、敵の増殖
「クローンされたとき」
Section titled “「クローンされたとき」”🎯 用途:クローン作成時の初期化📝 構文:クローンされたとき💡 例:位置とサイズの設定🔧 応用:クローンの個別設定
「このクローンを削除する」
Section titled “「このクローンを削除する」”🎯 用途:クローンの削除📝 構文:このクローンを削除する💡 例:画面外に出た弾の削除🔧 応用:メモリ管理、オブジェクト整理
実用例:
// 弾の発射システム// メインスプライトスペース キーが押されたとき弾 のクローンを作る
// 弾スプライトクローンされたときプレイヤー の位置に行くずっと 10 歩動かす もし <端に触れた> なら このクローンを削除する 終わり終わり
調べるブロック 🔴
Section titled “調べるブロック 🔴”「○に触れた」
Section titled “「○に触れた」”🎯 用途:他のオブジェクトとの接触判定📝 構文:[スプライト名/色/端] に触れた💡 例:<プレイヤー に触れた>🔧 応用:当たり判定、衝突検出
実用例:
// 敵との接触判定ずっと もし <敵 に触れた> なら "ゲームオーバー" を送る すべてを止める [すべて] 終わり終わり
「色○に触れた」
Section titled “「色○に触れた」”🎯 用途:特定色との接触判定📝 構文:色 [色] に触れた💡 例:<色 [赤] に触れた>🔧 応用:地形判定、アイテム判定
「色○が色○に触れた」
Section titled “「色○が色○に触れた」”🎯 用途:スプライト上の特定色同士の接触📝 構文:色 [色1] が色 [色2] に触れた💡 例:<色 [青] が色 [緑] に触れた>🔧 応用:精密な当たり判定
「○までの距離」
Section titled “「○までの距離」”🎯 用途:他のオブジェクトまでの距離を取得📝 構文:[スプライト名/マウスのポインター] までの距離💡 例:プレイヤー までの距離🔧 応用:近接判定、AI行動
実用例:
// 近接反応システムずっと もし <プレイヤー までの距離 < 50> なら "こんにちは!" と言う 終わり終わり
ユーザー入力状態
Section titled “ユーザー入力状態”「○キーが押された」
Section titled “「○キーが押された」”🎯 用途:キーの押下状態を判定📝 構文:[キー名] キーが押された💡 例:<スペース キーが押された>🔧 応用:連続入力、同時押し判定
「マウスが押された」
Section titled “「マウスが押された」”🎯 用途:マウスクリック状態を判定📝 構文:マウスが押された💡 例:<マウスが押された>🔧 応用:ドラッグ操作、連続クリック
「マウスのx座標」「マウスのy座標」
Section titled “「マウスのx座標」「マウスのy座標」”🎯 用途:マウスポインターの位置を取得📝 構文:マウスのx座標 / マウスのy座標💡 例:マウスのx座標🔧 応用:マウス追跡、ポインター操作
実用例:
// マウス追跡ずっと マウスのポインター へ向ける マウスのポインター までの距離 / 10 歩動かす終わり
「○年○月○日からの日数」
Section titled “「○年○月○日からの日数」”🎯 用途:指定日からの経過日数を取得📝 構文:[年] 年 [月] 月 [日] 日からの日数💡 例:2023 年 1 月 1 日からの日数🔧 応用:カレンダー機能、記念日計算
「現在の○」
Section titled “「現在の○」”🎯 用途:現在の時刻情報を取得📝 構文:現在の [年/月/日/曜日/時/分/秒]💡 例:現在の 時🔧 応用:時計機能、時間制限
実用例:
// デジタル時計ずっと 現在の 時 と ":" と 現在の 分 をつなげたものを言う 1 秒待つ終わり
音量とタイマー
Section titled “音量とタイマー”🎯 用途:マイクの音量レベルを取得📝 構文:音量💡 例:音量 > 50🔧 応用:音声反応、音量メーター
「タイマー」
Section titled “「タイマー」”🎯 用途:プログラム開始からの経過時間📝 構文:タイマー💡 例:タイマー > 10🔧 応用:時間制限、経過時間表示
「タイマーをリセット」
Section titled “「タイマーをリセット」”🎯 用途:タイマーを0にリセット📝 構文:タイマーをリセット💡 例:ゲーム開始時にリセット🔧 応用:時間計測の初期化
スプライト属性
Section titled “スプライト属性”🎯 用途:他のスプライトの属性を取得📝 構文:[スプライト名] の [属性名]💡 例:プレイヤー の x座標🔧 応用:他オブジェクトの状態参照
取得可能な属性:
📍 x座標、y座標:位置情報🧭 向き:回転角度📏 大きさ:サイズ(%)🎭 コスチューム番号:現在のコスチューム🎭 コスチューム名:コスチューム名📊 変数:そのスプライトの変数値
演算ブロック 🟢
Section titled “演算ブロック 🟢”「○+○」「○-○」「○×○」「○÷○」
🎯 用途:基本的な四則演算📝 構文:[数値1] [演算子] [数値2]💡 例:10 + 5🔧 応用:計算、数値処理
実用例:
// スコア計算スコア を スコア + (レベル × 10) にする
// 距離計算距離 を ((x1 - x2) × (x1 - x2)) + ((y1 - y2) × (y1 - y2)) の平方根 にする
「○から○までの乱数」
Section titled “「○から○までの乱数」”🎯 用途:指定範囲のランダムな数値を生成📝 構文:[最小値] から [最大値] までの乱数💡 例:1 から 10 までの乱数🔧 応用:ランダム要素、確率処理
実用例:
// ランダムな位置に移動x座標を -200 から 200 までの乱数 にするy座標を -150 から 150 までの乱数 にする
// ランダムな色効果色 の効果を 0 から 200 までの乱数 にする
「○>○」「○<○」「○=○」
Section titled “「○>○」「○<○」「○=○」”🎯 用途:数値や文字列の比較📝 構文:[値1] [比較演算子] [値2]💡 例:スコア > 100🔧 応用:条件判定、分岐処理
実用例:
// レベル判定もし <スコア > 1000> なら レベル を 2 にするでなければ もし <スコア > 500> なら レベル を 1 にする 終わり終わり
「○かつ○」
Section titled “「○かつ○」”🎯 用途:複数条件の同時成立判定📝 構文:[条件1] かつ [条件2]💡 例:<x座標 > 0> かつ <y座標 > 0>🔧 応用:複合条件、精密判定
「○または○」
Section titled “「○または○」”🎯 用途:複数条件のいずれか成立判定📝 構文:[条件1] または [条件2]💡 例:<スペース キーが押された> または <マウスが押された>🔧 応用:複数入力、代替条件
「○ではない」
Section titled “「○ではない」”🎯 用途:条件の否定📝 構文:[条件] ではない💡 例:<端に触れた> ではない🔧 応用:逆条件、除外判定
実用例:
// 安全地帯の判定もし <<色 [赤] に触れた> ではない> かつ <<色 [黒] に触れた> ではない> なら "安全です" と言うでなければ "危険です!" と言う終わり
🎯 用途:文字列の連結📝 構文:[文字列1] と [文字列2]💡 例:"こんにちは" と "世界"🔧 応用:メッセージ作成、動的テキスト
実用例:
// 動的メッセージ"スコア: " と スコア と " ポイント" をつなげたものを言う
// プレイヤー名表示"こんにちは、" と プレイヤー名 と "さん!" をつなげたものを言う
「○の○文字目」
Section titled “「○の○文字目」”🎯 用途:文字列の特定位置の文字を取得📝 構文:[文字列] の [位置] 文字目💡 例:"Hello" の 1 文字目🔧 応用:文字解析、パスワード処理
「○の長さ」
Section titled “「○の長さ」”🎯 用途:文字列の文字数を取得📝 構文:[文字列] の長さ💡 例:プレイヤー名 の長さ🔧 応用:入力検証、文字数制限
「○に○が含まれる」
Section titled “「○に○が含まれる」”🎯 用途:文字列内の部分文字列検索📝 構文:[文字列] に [検索文字列] が含まれる💡 例:メッセージ に "こんにちは" が含まれる🔧 応用:キーワード検索、フィルタリング
実用例:
// 禁止ワードチェックもし <入力テキスト に "悪い言葉" が含まれる> なら "適切な言葉を使ってください" と言うでなければ 入力テキスト と言う終わり
「○を○で割った余り」
Section titled “「○を○で割った余り」”🎯 用途:除算の余りを計算📝 構文:[被除数] を [除数] で割った余り💡 例:13 を 5 で割った余り🔧 応用:周期処理、偶数奇数判定
実用例:
// 偶数奇数判定もし <数値 を 2 で割った余り = 0> なら "偶数です" と言うでなければ "奇数です" と言う終わり
// 周期的な色変化色 の効果を タイマー を 5 で割った余り × 50 にする
「○を四捨五入」
Section titled “「○を四捨五入」”🎯 用途:数値の四捨五入📝 構文:[数値] を四捨五入💡 例:3.7 を四捨五入🔧 応用:整数化、表示用数値処理
「○の○」(数学関数)
Section titled “「○の○」(数学関数)”🎯 用途:各種数学関数の適用📝 構文:[数値] の [関数名]💡 例:25 の平方根🔧 応用:科学計算、物理シミュレーション
利用可能な関数:
📐 sin、cos、tan:三角関数📏 平方根:ルート計算🔢 絶対値:符号を除いた値📊 自然対数:ln計算📈 常用対数:log計算🔺 e^:指数関数📐 10^:10の累乗
変数ブロック 🔵
Section titled “変数ブロック 🔵”変数の基本操作
Section titled “変数の基本操作”「○を○にする」
Section titled “「○を○にする」”🎯 用途:変数に値を代入📝 構文:[変数名] を [値] にする💡 例:スコア を 0 にする🔧 応用:初期化、値の設定
「○を○ずつ変える」
Section titled “「○を○ずつ変える」”🎯 用途:変数の値を増減📝 構文:[変数名] を [値] ずつ変える💡 例:スコア を 10 ずつ変える🔧 応用:カウンター、累積計算
実用例:
// ゲームスコア管理緑の旗がクリックされたときスコア を 0 にする
// アイテム取得時星 に触れたときスコア を 10 ずつ変える
「○を表示する」「○を隠す」
Section titled “「○を表示する」「○を隠す」”🎯 用途:変数の画面表示制御📝 構文:[変数名] を表示する / [変数名] を隠す💡 例:スコア を表示する🔧 応用:UI管理、デバッグ表示
リストの操作
Section titled “リストの操作”「○を○に追加する」
Section titled “「○を○に追加する」”🎯 用途:リストに新しい項目を追加📝 構文:[値] を [リスト名] に追加する💡 例:プレイヤー名 を ランキング に追加する🔧 応用:データ収集、履歴管理
「○の○番目を削除する」
Section titled “「○の○番目を削除する」”🎯 用途:リストの特定項目を削除📝 構文:[リスト名] の [位置] 番目を削除する💡 例:ランキング の 1 番目を削除する🔧 応用:データ整理、容量管理
「○の○番目に○を挿入する」
Section titled “「○の○番目に○を挿入する」”🎯 用途:リストの特定位置に項目を挿入📝 構文:[リスト名] の [位置] 番目に [値] を挿入する💡 例:ランキング の 1 番目に 新記録 を挿入する🔧 応用:ソート処理、優先度管理
「○の○番目を○にする」
Section titled “「○の○番目を○にする」”🎯 用途:リストの特定項目を変更📝 構文:[リスト名] の [位置] 番目を [値] にする💡 例:設定 の 1 番目を "ON" にする🔧 応用:設定管理、データ更新
実用例:
// ハイスコアランキング管理緑の旗がクリックされたときランキング のすべてを削除する100 を ランキング に追加する80 を ランキング に追加する60 を ランキング に追加する
// 新記録の挿入もし <最終スコア > ランキング の 1 番目> なら ランキング の 1 番目に 最終スコア を挿入する ランキング の 4 番目を削除する終わり
「○の○番目」
Section titled “「○の○番目」”🎯 用途:リストの特定項目を取得📝 構文:[リスト名] の [位置] 番目💡 例:ランキング の 1 番目🔧 応用:データ参照、順位表示
「○に○が含まれる項目番号」
Section titled “「○に○が含まれる項目番号」”🎯 用途:リスト内の項目検索📝 構文:[リスト名] に [値] が含まれる項目番号💡 例:プレイヤーリスト に "太郎" が含まれる項目番号🔧 応用:検索機能、存在確認
「○の長さ」
Section titled “「○の長さ」”🎯 用途:リストの項目数を取得📝 構文:[リスト名] の長さ💡 例:ランキング の長さ🔧 応用:ループ制御、容量確認
「○に○が含まれる」
Section titled “「○に○が含まれる」”🎯 用途:リスト内の項目存在確認📝 構文:[リスト名] に [値] が含まれる💡 例:禁止ワードリスト に 入力文字 が含まれる🔧 応用:フィルタリング、検証
実用例:
// プレイヤー管理システム// 新規プレイヤー登録もし <プレイヤーリスト に 新しい名前 が含まれる> なら "その名前は既に使用されています" と言うでなければ 新しい名前 を プレイヤーリスト に追加する "登録完了!" と言う終わり
// プレイヤー一覧表示1 から プレイヤーリスト の長さ まで繰り返す カウンター と ": " と プレイヤーリスト の カウンター 番目 をつなげたものを言う終わり
ブロック定義 🟣
Section titled “ブロック定義 🟣”カスタムブロックの作成
Section titled “カスタムブロックの作成”「○を定義する」
Section titled “「○を定義する」”🎯 用途:独自のブロックを定義📝 構文:[ブロック名] を定義する💡 例:"挨拶する" を定義する🔧 応用:コードの再利用、機能のモジュール化
実用例:
// カスタムブロック定義"正方形を描く" を定義する4 回繰り返す 100 歩動かす 右に 90 度回す終わり
// 使用方法緑の旗がクリックされたとき正方形を描く
引数付きカスタムブロック
Section titled “引数付きカスタムブロック”🎯 用途:パラメータを受け取るブロック📝 構文:引数を含むブロック定義💡 例:"○歩で正方形を描く" を定義する🔧 応用:柔軟な機能、パラメータ化
実用例:
// 引数付きブロック定義"サイズ (大きさ) で正方形を描く" を定義する4 回繰り返す 大きさ 歩動かす 右に 90 度回す終わり
// 使用方法サイズ (50) で正方形を描くサイズ (100) で正方形を描く
「画面を再描画せずに実行する」オプション
Section titled “「画面を再描画せずに実行する」オプション”🎯 用途:高速実行のための最適化📝 構文:ブロック定義時のオプション💡 例:描画処理の高速化🔧 応用:パフォーマンス向上、大量処理
高度な使用技術
Section titled “高度な使用技術”🔄 効率的なループ設計
Section titled “🔄 効率的なループ設計”最適化されたゲームループ
Section titled “最適化されたゲームループ”// 効率的なメインループ緑の旗がクリックされたときずっと // 入力処理 もし <右向き矢印 キーが押された> なら x座標を 5 ずつ変える 終わり
// 物理演算 重力を適用する
// 衝突判定 衝突をチェックする
// 画面更新 画面を更新する
// フレームレート制御 0.016 秒待つ // 約60FPS終わり
条件付きループの活用
Section titled “条件付きループの活用”// ゲーム状態に応じたループゲーム中 まで繰り返す プレイヤー入力を処理する 敵の動きを更新する 当たり判定を実行する終わり
🎯 状態管理システム
Section titled “🎯 状態管理システム”ゲーム状態の管理
Section titled “ゲーム状態の管理”// 状態変数の定義変数 [ゲーム状態] を作る // "メニュー", "プレイ中", "ポーズ", "終了"
// 状態に応じた処理もし <ゲーム状態 = "メニュー"> なら メニュー画面を表示するでなければ もし <ゲーム状態 = "プレイ中"> なら ゲームロジックを実行する でなければ もし <ゲーム状態 = "ポーズ"> なら ポーズ画面を表示する 終わり 終わり終わり
📊 データ構造の活用
Section titled “📊 データ構造の活用”複雑なデータ管理
Section titled “複雑なデータ管理”// プレイヤー情報をリストで管理リスト [プレイヤー名] を作るリスト [プレイヤースコア] を作るリスト [プレイヤーレベル] を作る
// データの追加"太郎" を プレイヤー名 に追加する1500 を プレイヤースコア に追加する3 を プレイヤーレベル に追加する
// データの検索と表示変数 [プレイヤー番号] を プレイヤー名 に "太郎" が含まれる項目番号 にするもし <プレイヤー番号 > 0> なら プレイヤー名 の プレイヤー番号 番目 と "のスコア: " と プレイヤースコア の プレイヤー番号 番目 をつなげたものを言う終わり
🎮 イベント駆動プログラミング
Section titled “🎮 イベント駆動プログラミング”メッセージシステムの活用
Section titled “メッセージシステムの活用”// イベント送信者スペース キーが押されたとき"ジャンプ開始" を送る
// イベント受信者1(プレイヤー)"ジャンプ開始" を受け取ったときy座標を 20 ずつ変える
// イベント受信者2(効果音)"ジャンプ開始" を受け取ったときジャンプ音 の音を鳴らす
// イベント受信者3(エフェクト)"ジャンプ開始" を受け取ったときジャンプエフェクト のクローンを作る
🧮 数学的計算の応用
Section titled “🧮 数学的計算の応用”物理シミュレーション
Section titled “物理シミュレーション”// 重力と跳ね返りの実装変数 [速度X] を作る変数 [速度Y] を作る変数 [重力] を -0.5 にする変数 [反発係数] を 0.8 にする
ずっと // 重力の適用 速度Y を 速度Y + 重力 にする
// 位置の更新 x座標を x座標 + 速度X にする y座標を y座標 + 速度Y にする
// 地面との衝突 もし <y座標 < -150> なら y座標を -150 にする 速度Y を 速度Y × 反発係数 × -1 にする 終わり
// 壁との衝突 もし <x座標 > 240> または <x座標 < -240> なら 速度X を 速度X × -1 にする 終わり終わり
三角関数の活用
Section titled “三角関数の活用”// 円運動の実装変数 [角度] を 0 にする変数 [半径] を 100 にする
ずっと x座標を 半径 × 角度 の cos にする y座標を 半径 × 角度 の sin にする 角度を 角度 + 5 にする終わり
🎨 視覚効果の高度な技術
Section titled “🎨 視覚効果の高度な技術”パーティクルシステム
Section titled “パーティクルシステム”// パーティクル生成"爆発" を受け取ったとき20 回繰り返す パーティクル のクローンを作る終わり
// パーティクルスプライトクローンされたとき爆発位置 に行く向きを 1 から 360 までの乱数 度にする変数 [寿命] を 30 にするずっと 3 歩動かす 大きさを 98 % にする 寿命 を -1 ずつ変える もし <寿命 < 1> なら このクローンを削除する 終わり終わり
滑らかなアニメーション
Section titled “滑らかなアニメーション”// イージング関数の実装"滑らかに移動" を定義する変数 [開始X] を x座標 にする変数 [開始Y] を y座標 にする変数 [進行度] を 0 にする
30 回繰り返す 進行度 を 進行度 + 1 にする 変数 [イージング値] を (進行度 / 30) × (進行度 / 30) にする x座標を 開始X + ((目標X - 開始X) × イージング値) にする y座標を 開始Y + ((目標Y - 開始Y) × イージング値) にする 0.033 秒待つ終わり
🔧 デバッグとトラブルシューティング
Section titled “🔧 デバッグとトラブルシューティング”デバッグ用ブロック
Section titled “デバッグ用ブロック”// デバッグ情報の表示"デバッグ情報を表示" を定義する"X: " と x座標 をつなげたものを言う"Y: " と y座標 をつなげたものを言う"スコア: " と スコア をつなげたものを言う"状態: " と ゲーム状態 をつなげたものを言う
パフォーマンス監視
Section titled “パフォーマンス監視”// FPS計測変数 [フレーム数] を 0 にする変数 [開始時間] を タイマー にする
ずっと フレーム数 を 1 ずつ変える もし <タイマー - 開始時間 > 1> なら "FPS: " と フレーム数 をつなげたものを言う フレーム数 を 0 にする 開始時間 を タイマー にする 終わり終わり
エラーハンドリング
Section titled “エラーハンドリング”// 安全な除算"安全に割る (数値) ÷ (除数)" を定義するもし <除数 = 0> なら 結果 を 0 にするでなければ 結果 を 数値 ÷ 除数 にする終わり
🎯 最適化のベストプラクティス
Section titled “🎯 最適化のベストプラクティス”効率的なコード設計
Section titled “効率的なコード設計”// 悪い例:毎フレーム重い計算ずっと もし <((x座標 - 敵X) × (x座標 - 敵X)) + ((y座標 - 敵Y) × (y座標 - 敵Y)) の平方根 < 50> なら // 処理 終わり終わり
// 良い例:計算結果をキャッシュずっと 距離 を ((x座標 - 敵X) × (x座標 - 敵X)) + ((y座標 - 敵Y) × (y座標 - 敵Y)) の平方根 にする もし <距離 < 50> なら // 処理 終わり 0.1 秒待つ // 計算頻度を下げる終わり
// クローンの適切な削除クローンされたとき変数 [寿命] を 100 にするずっと 寿命 を -1 ずつ変える もし <寿命 < 1> または <画面外に出た> なら このクローンを削除する 終わり終わり
このリファレンスガイドでは、Scratch 3.0のすべてのブロックについて詳しく説明しました。各ブロックの基本的な使い方から高度な応用技術まで、実用的な例とともに学習できます。
🎯 効果的な学習方法
Section titled “🎯 効果的な学習方法”- 基本から始める:まず基本的なブロックの使い方を理解する
- 実践で学ぶ:小さなプロジェクトで実際に使ってみる
- 組み合わせる:複数のブロックを組み合わせて複雑な機能を作る
- 最適化する:動作を改善し、より効率的なコードを書く
- 創造する:学んだ技術を使って独自のアイデアを実現する
🚀 次のステップ
Section titled “🚀 次のステップ”- プロジェクト作成:学んだブロックを使って実際のゲームやアニメーションを作成
- コミュニティ参加:他の作品を見て学び、自分の作品を共有
- 高度な技術:物理シミュレーション、AI、データ処理などに挑戦
- 教育活動:学んだ知識を他の人に教える
プログラミングは創造的な活動です。 このリファレンスを参考に、あなた独自の素晴らしい作品を作り上げてください! 🎉✨
このリファレンスは継続的に更新されます。新しい機能や技術が追加された際は、最新の情報をチェックしてください。