コンテンツにスキップ

ブロックリファレンス

Scratch 3.0 ブロックリファレンス

Section titled “Scratch 3.0 ブロックリファレンス”

Scratch 3.0のすべてのブロックの包括的なガイドです。各ブロックの用途、構文、実用的な使用例を分類別に整理しています。

🎩 形状:上部が丸い帽子のような形
🚀 機能:スクリプトの開始点
🔗 接続:下部のみ他のブロックと接続可能
📍 位置:常にスクリプトの最上部

スタックブロック(積み重ね型)

Section titled “スタックブロック(積み重ね型)”
📦 形状:長方形で上下に接続部
⚙️ 機能:アクションや命令を実行
🔗 接続:上下両方で他のブロックと接続
🏗️ 構造:スクリプトの主要な構成要素
🌙 形状:C字型で内部にスペース
🔄 機能:他のブロックを包含(ループ、条件分岐)
🔗 接続:上下と内部でブロックを接続
🎛️ 制御:プログラムの流れを制御

レポーターブロック(報告型)

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 にする
終わり
終わり
🎯 用途:スプライトを指定方向に向ける
📝 構文:[数値] 度に向ける
💡 例:90 度に向ける(右向き)
🔧 応用:方向設定、照準合わせ

方向の基準

⬆️ 0度:上
➡️ 90度:右
⬇️ 180度:下
⬅️ -90度(270度):左
🎯 用途:他のスプライトやマウスポインターに向ける
📝 構文:[スプライト/マウスのポインター] へ向ける
💡 例:マウスのポインター へ向ける
🔧 応用:追跡、照準システム

実用例

// 敵キャラクターがプレイヤーを追跡
ずっと
プレイヤー へ向ける
3 歩動かす
0.1 秒待つ
終わり

「もし端に触れたなら、跳ね返る」

Section titled “「もし端に触れたなら、跳ね返る」”
🎯 用途:画面端での反射処理
📝 構文:もし <端に触れた> なら 跳ね返る
💡 例:ボールの跳ね返り
🔧 応用:物理シミュレーション、ゲーム境界

実用例

// 跳ね返るボール
ずっと
5 歩動かす
もし <端に触れた> なら
跳ね返る
終わり
終わり
🎯 用途:スプライトの回転方法を設定
📝 構文:回転方法を [自由に回転/左右のみ/回転しない] にする
💡 例:回転方法を 左右のみ にする
🔧 応用:キャラクターの向き制御

回転方法の種類

🔄 自由に回転:全方向に回転可能
↔️ 左右のみ:水平方向のみ反転
🚫 回転しない:常に正立状態
🎯 用途:スプライトの表示/非表示を制御
📝 構文:表示する / 隠す
💡 例:ゲーム開始時に隠す
🔧 応用:アニメーション、ゲーム状態管理

実用例

// 点滅効果
10 回繰り返す
隠す
0.2 秒待つ
表示する
0.2 秒待つ
終わり
🎯 用途:スプライトの外観を変更
📝 構文:コスチュームを [コスチューム名/番号] にする
💡 例:コスチュームを "歩く1" にする
🔧 応用:アニメーション、状態表現

実用例

// 歩行アニメーション
ずっと
コスチュームを "歩く1" にする
0.2 秒待つ
コスチュームを "歩く2" にする
0.2 秒待つ
終わり
🎯 用途:コスチュームを順番に切り替え
📝 構文:次のコスチュームにする
💡 例:連続アニメーション
🔧 応用:自動アニメーション、状態循環
🎯 用途:スプライトのサイズを変更
📝 構文:大きさを [数値] % にする
💡 例:大きさを 150 % にする
🔧 応用:成長効果、強調表現

実用例

// パルス効果
ずっと
大きさを 120 % にする
0.5 秒待つ
大きさを 100 % にする
0.5 秒待つ
終わり
🎯 用途:視覚効果の適用
📝 構文:[効果名] の効果を [数値] ずつ変える
💡 例:色 の効果を 25 ずつ変える
🔧 応用:特殊効果、状態表現

利用可能な効果

🌈 色:色相の変更
🐟 魚眼:魚眼レンズ効果
🌪️ 渦巻き:渦巻き歪み
👻 幽霊:透明度の変更
✨ 明るさ:明度の変更
🔍 モザイク:ピクセル化

「最前面に移動する」「○層前に移動する」

Section titled “「最前面に移動する」「○層前に移動する」”
🎯 用途:スプライトの表示順序を制御
📝 構文:最前面に移動する / [数値] 層前に移動する
💡 例:最前面に移動する
🔧 応用:UI要素、重要オブジェクトの強調

実用例

// クリック時に最前面に移動
このスプライトがクリックされたとき
最前面に移動する
大きさを 110 % にする
0.2 秒待つ
大きさを 100 % にする

「○と言う」「○と○秒言う」

Section titled “「○と言う」「○と○秒言う」”
🎯 用途:スプライトにセリフを表示
📝 構文:[テキスト] と言う / [テキスト] と [数値] 秒言う
💡 例:"こんにちは!" と 2 秒言う
🔧 応用:ダイアログ、情報表示

実用例

// 挨拶システム
このスプライトがクリックされたとき
"こんにちは!" と 2 秒言う
"今日はいい天気ですね" と 3 秒言う

「○と考える」「○と○秒考える」

Section titled “「○と考える」「○と○秒考える」”
🎯 用途:思考泡でテキストを表示
📝 構文:[テキスト] と考える / [テキスト] と [数値] 秒考える
💡 例:"うーん..." と 2 秒考える
🔧 応用:内心の表現、思考プロセス
🎯 用途:音響効果の再生
📝 構文:[音名] の音を鳴らす
💡 例:ニャー の音を鳴らす
🔧 応用:効果音、フィードバック

実用例

// ボタンクリック音
このスプライトがクリックされたとき
ポップ の音を鳴らす
🎯 用途:音が終わるまで待機して再生
📝 構文:[音名] の音を最後まで鳴らす
💡 例:音楽 の音を最後まで鳴らす
🔧 応用:BGM、長い音響効果
🎯 用途:音量レベルの設定
📝 構文:音量を [数値] % にする
💡 例:音量を 50 % にする
🔧 応用:音量調整、フェード効果

実用例

// フェードアウト効果
10 回繰り返す
音量を 音量 - 10 にする
0.1 秒待つ
終わり
🎯 用途:MIDI楽器の選択
📝 構文:楽器を [楽器名/番号] にする
💡 例:楽器を ピアノ にする
🔧 応用:音楽作成、効果音の多様化
🎯 用途:指定音程の音符を演奏
📝 構文:[音程] の音符を [拍数] 拍鳴らす
💡 例:60 の音符を 0.5 拍鳴らす
🔧 応用:メロディー作成、音楽ゲーム

実用例

// 簡単なメロディー
60 の音符を 0.5 拍鳴らす // ド
62 の音符を 0.5 拍鳴らす // レ
64 の音符を 0.5 拍鳴らす // ミ
65 の音符を 1 拍鳴らす // ファ

「緑の旗がクリックされたとき」

Section titled “「緑の旗がクリックされたとき」”
🎯 用途:プログラムの開始トリガー
📝 構文:緑の旗がクリックされたとき
💡 例:ゲーム初期化
🔧 応用:メインプログラム、初期設定

実用例

// ゲーム初期化
緑の旗がクリックされたとき
スコア を 0 にする
x座標を 0 、y座標を 0 にする
表示する
🎯 用途:キーボード入力への反応
📝 構文:[キー名] キーが押されたとき
💡 例:スペース キーが押されたとき
🔧 応用:ゲーム操作、インタラクション

実用例

// キャラクター操作
上向き矢印 キーが押されたとき
y座標を 10 ずつ変える
下向き矢印 キーが押されたとき
y座標を -10 ずつ変える

「このスプライトがクリックされたとき」

Section titled “「このスプライトがクリックされたとき」”
🎯 用途:スプライトクリックへの反応
📝 構文:このスプライトがクリックされたとき
💡 例:ボタン機能
🔧 応用:UI要素、インタラクティブオブジェクト

「○を送る」「○を送って待つ」

Section titled “「○を送る」「○を送って待つ」”
🎯 用途:スプライト間の通信
📝 構文:[メッセージ名] を送る / [メッセージ名] を送って待つ
💡 例:"ゲーム開始" を送る
🔧 応用:イベント連鎖、状態管理
🎯 用途:メッセージの受信処理
📝 構文:[メッセージ名] を受け取ったとき
💡 例:"ゲーム終了" を受け取ったとき
🔧 応用:協調動作、イベント処理

実用例

// ゲーム状態管理
// プレイヤースプライト
スペース キーが押されたとき
"ジャンプ" を送る
// 効果音スプライト
"ジャンプ" を受け取ったとき
ジャンプ音 の音を鳴らす
🎯 用途:条件が満たされた時の処理
📝 構文:[値1] > [値2] のとき
💡 例:音量 > 10 のとき
🔧 応用:閾値監視、自動反応

実用例

// 音量レベル監視
音量 > 50 のとき
"音が大きすぎます" と 2 秒言う
音量を 30 にする
🎯 用途:指定時間の一時停止
📝 構文:[数値] 秒待つ
💡 例:1 秒待つ
🔧 応用:タイミング制御、アニメーション

実用例

// 点滅アニメーション
ずっと
表示する
0.5 秒待つ
隠す
0.5 秒待つ
終わり
🎯 用途:無限ループ
📝 構文:ずっと [処理] 終わり
💡 例:連続移動
🔧 応用:ゲームループ、継続処理
🎯 用途:指定回数の繰り返し
📝 構文:[数値] 回繰り返す [処理] 終わり
💡 例:10 回繰り返す
🔧 応用:アニメーション、反復処理

実用例

// 正方形を描く
4 回繰り返す
100 歩動かす
右に 90 度回す
終わり
🎯 用途:条件が満たされるまで繰り返し
📝 構文:[条件] まで繰り返す [処理] 終わり
💡 例:<端に触れた> まで繰り返す
🔧 応用:条件待ち、探索処理
🎯 用途:条件による分岐処理
📝 構文:もし [条件] なら [処理] 終わり
💡 例:もし <マウスに触れた> なら
🔧 応用:判定処理、状態制御

「もし○なら○でなければ○」

Section titled “「もし○なら○でなければ○」”
🎯 用途:二択の条件分岐
📝 構文:もし [条件] なら [処理1] でなければ [処理2] 終わり
💡 例:スコア判定
🔧 応用:複雑な判定、状態切り替え

実用例

// スコア判定
もし <スコア > 100> なら
"素晴らしい!" と言う
でなければ
"もう少し頑張って!" と言う
終わり
🎯 用途:条件が満たされるまで待機
📝 構文:[条件] まで待つ
💡 例:<マウスが押された> まで待つ
🔧 応用:ユーザー入力待ち、同期処理
🎯 用途:プログラムの停止
📝 構文:すべてを止める [対象]
💡 例:すべてを止める [すべて]
🔧 応用:ゲーム終了、緊急停止

停止対象の種類

🛑 すべて:全てのスクリプト
📜 このスクリプト以外:現在のスクリプト以外
🎭 このスプライトの他のスクリプト:同一スプライト内の他のスクリプト
🎯 用途:スプライトの複製を作成
📝 構文:[スプライト名] のクローンを作る
💡 例:自分自身 のクローンを作る
🔧 応用:弾の生成、敵の増殖
🎯 用途:クローン作成時の初期化
📝 構文:クローンされたとき
💡 例:位置とサイズの設定
🔧 応用:クローンの個別設定
🎯 用途:クローンの削除
📝 構文:このクローンを削除する
💡 例:画面外に出た弾の削除
🔧 応用:メモリ管理、オブジェクト整理

実用例

// 弾の発射システム
// メインスプライト
スペース キーが押されたとき
弾 のクローンを作る
// 弾スプライト
クローンされたとき
プレイヤー の位置に行く
ずっと
10 歩動かす
もし <端に触れた> なら
このクローンを削除する
終わり
終わり
🎯 用途:他のオブジェクトとの接触判定
📝 構文:[スプライト名/色/端] に触れた
💡 例:<プレイヤー に触れた>
🔧 応用:当たり判定、衝突検出

実用例

// 敵との接触判定
ずっと
もし <敵 に触れた> なら
"ゲームオーバー" を送る
すべてを止める [すべて]
終わり
終わり
🎯 用途:特定色との接触判定
📝 構文:色 [色] に触れた
💡 例:<色 [赤] に触れた>
🔧 応用:地形判定、アイテム判定
🎯 用途:スプライト上の特定色同士の接触
📝 構文:色 [色1] が色 [色2] に触れた
💡 例:<色 [青] が色 [緑] に触れた>
🔧 応用:精密な当たり判定
🎯 用途:他のオブジェクトまでの距離を取得
📝 構文:[スプライト名/マウスのポインター] までの距離
💡 例:プレイヤー までの距離
🔧 応用:近接判定、AI行動

実用例

// 近接反応システム
ずっと
もし <プレイヤー までの距離 < 50> なら
"こんにちは!" と言う
終わり
終わり
🎯 用途:キーの押下状態を判定
📝 構文:[キー名] キーが押された
💡 例:<スペース キーが押された>
🔧 応用:連続入力、同時押し判定
🎯 用途:マウスクリック状態を判定
📝 構文:マウスが押された
💡 例:<マウスが押された>
🔧 応用:ドラッグ操作、連続クリック

「マウスのx座標」「マウスのy座標」

Section titled “「マウスのx座標」「マウスのy座標」”
🎯 用途:マウスポインターの位置を取得
📝 構文:マウスのx座標 / マウスのy座標
💡 例:マウスのx座標
🔧 応用:マウス追跡、ポインター操作

実用例

// マウス追跡
ずっと
マウスのポインター へ向ける
マウスのポインター までの距離 / 10 歩動かす
終わり
🎯 用途:指定日からの経過日数を取得
📝 構文:[年] 年 [月] 月 [日] 日からの日数
💡 例:2023 年 1 月 1 日からの日数
🔧 応用:カレンダー機能、記念日計算
🎯 用途:現在の時刻情報を取得
📝 構文:現在の [年/月/日/曜日/時/分/秒]
💡 例:現在の 時
🔧 応用:時計機能、時間制限

実用例

// デジタル時計
ずっと
現在の 時 と ":" と 現在の 分 をつなげたものを言う
1 秒待つ
終わり
🎯 用途:マイクの音量レベルを取得
📝 構文:音量
💡 例:音量 > 50
🔧 応用:音声反応、音量メーター
🎯 用途:プログラム開始からの経過時間
📝 構文:タイマー
💡 例:タイマー > 10
🔧 応用:時間制限、経過時間表示
🎯 用途:タイマーを0にリセット
📝 構文:タイマーをリセット
💡 例:ゲーム開始時にリセット
🔧 応用:時間計測の初期化
🎯 用途:他のスプライトの属性を取得
📝 構文:[スプライト名] の [属性名]
💡 例:プレイヤー の x座標
🔧 応用:他オブジェクトの状態参照

取得可能な属性

📍 x座標、y座標:位置情報
🧭 向き:回転角度
📏 大きさ:サイズ(%)
🎭 コスチューム番号:現在のコスチューム
🎭 コスチューム名:コスチューム名
📊 変数:そのスプライトの変数値

「○+○」「○-○」「○×○」「○÷○」

🎯 用途:基本的な四則演算
📝 構文:[数値1] [演算子] [数値2]
💡 例:10 + 5
🔧 応用:計算、数値処理

実用例

// スコア計算
スコア を スコア + (レベル × 10) にする
// 距離計算
距離 を ((x1 - x2) × (x1 - x2)) + ((y1 - y2) × (y1 - y2)) の平方根 にする
🎯 用途:指定範囲のランダムな数値を生成
📝 構文:[最小値] から [最大値] までの乱数
💡 例:1 から 10 までの乱数
🔧 応用:ランダム要素、確率処理

実用例

// ランダムな位置に移動
x座標を -200 から 200 までの乱数 にする
y座標を -150 から 150 までの乱数 にする
// ランダムな色効果
色 の効果を 0 から 200 までの乱数 にする

「○>○」「○<○」「○=○」

Section titled “「○>○」「○<○」「○=○」”
🎯 用途:数値や文字列の比較
📝 構文:[値1] [比較演算子] [値2]
💡 例:スコア > 100
🔧 応用:条件判定、分岐処理

実用例

// レベル判定
もし <スコア > 1000> なら
レベル を 2 にする
でなければ
もし <スコア > 500> なら
レベル を 1 にする
終わり
終わり
🎯 用途:複数条件の同時成立判定
📝 構文:[条件1] かつ [条件2]
💡 例:<x座標 > 0> かつ <y座標 > 0>
🔧 応用:複合条件、精密判定
🎯 用途:複数条件のいずれか成立判定
📝 構文:[条件1] または [条件2]
💡 例:<スペース キーが押された> または <マウスが押された>
🔧 応用:複数入力、代替条件
🎯 用途:条件の否定
📝 構文:[条件] ではない
💡 例:<端に触れた> ではない
🔧 応用:逆条件、除外判定

実用例

// 安全地帯の判定
もし <<色 [赤] に触れた> ではない> かつ <<色 [黒] に触れた> ではない> なら
"安全です" と言う
でなければ
"危険です!" と言う
終わり
🎯 用途:文字列の連結
📝 構文:[文字列1] と [文字列2]
💡 例:"こんにちは" と "世界"
🔧 応用:メッセージ作成、動的テキスト

実用例

// 動的メッセージ
"スコア: " と スコア と " ポイント" をつなげたものを言う
// プレイヤー名表示
"こんにちは、" と プレイヤー名 と "さん!" をつなげたものを言う
🎯 用途:文字列の特定位置の文字を取得
📝 構文:[文字列] の [位置] 文字目
💡 例:"Hello" の 1 文字目
🔧 応用:文字解析、パスワード処理
🎯 用途:文字列の文字数を取得
📝 構文:[文字列] の長さ
💡 例:プレイヤー名 の長さ
🔧 応用:入力検証、文字数制限
🎯 用途:文字列内の部分文字列検索
📝 構文:[文字列] に [検索文字列] が含まれる
💡 例:メッセージ に "こんにちは" が含まれる
🔧 応用:キーワード検索、フィルタリング

実用例

// 禁止ワードチェック
もし <入力テキスト に "悪い言葉" が含まれる> なら
"適切な言葉を使ってください" と言う
でなければ
入力テキスト と言う
終わり
🎯 用途:除算の余りを計算
📝 構文:[被除数] を [除数] で割った余り
💡 例:13 を 5 で割った余り
🔧 応用:周期処理、偶数奇数判定

実用例

// 偶数奇数判定
もし <数値 を 2 で割った余り = 0> なら
"偶数です" と言う
でなければ
"奇数です" と言う
終わり
// 周期的な色変化
色 の効果を タイマー を 5 で割った余り × 50 にする
🎯 用途:数値の四捨五入
📝 構文:[数値] を四捨五入
💡 例:3.7 を四捨五入
🔧 応用:整数化、表示用数値処理
🎯 用途:各種数学関数の適用
📝 構文:[数値] の [関数名]
💡 例:25 の平方根
🔧 応用:科学計算、物理シミュレーション

利用可能な関数

📐 sin、cos、tan:三角関数
📏 平方根:ルート計算
🔢 絶対値:符号を除いた値
📊 自然対数:ln計算
📈 常用対数:log計算
🔺 e^:指数関数
📐 10^:10の累乗
🎯 用途:変数に値を代入
📝 構文:[変数名] を [値] にする
💡 例:スコア を 0 にする
🔧 応用:初期化、値の設定
🎯 用途:変数の値を増減
📝 構文:[変数名] を [値] ずつ変える
💡 例:スコア を 10 ずつ変える
🔧 応用:カウンター、累積計算

実用例

// ゲームスコア管理
緑の旗がクリックされたとき
スコア を 0 にする
// アイテム取得時
星 に触れたとき
スコア を 10 ずつ変える

「○を表示する」「○を隠す」

Section titled “「○を表示する」「○を隠す」”
🎯 用途:変数の画面表示制御
📝 構文:[変数名] を表示する / [変数名] を隠す
💡 例:スコア を表示する
🔧 応用:UI管理、デバッグ表示
🎯 用途:リストに新しい項目を追加
📝 構文:[値] を [リスト名] に追加する
💡 例:プレイヤー名 を ランキング に追加する
🔧 応用:データ収集、履歴管理
🎯 用途:リストの特定項目を削除
📝 構文:[リスト名] の [位置] 番目を削除する
💡 例:ランキング の 1 番目を削除する
🔧 応用:データ整理、容量管理

「○の○番目に○を挿入する」

Section titled “「○の○番目に○を挿入する」”
🎯 用途:リストの特定位置に項目を挿入
📝 構文:[リスト名] の [位置] 番目に [値] を挿入する
💡 例:ランキング の 1 番目に 新記録 を挿入する
🔧 応用:ソート処理、優先度管理
🎯 用途:リストの特定項目を変更
📝 構文:[リスト名] の [位置] 番目を [値] にする
💡 例:設定 の 1 番目を "ON" にする
🔧 応用:設定管理、データ更新

実用例

// ハイスコアランキング管理
緑の旗がクリックされたとき
ランキング のすべてを削除する
100 を ランキング に追加する
80 を ランキング に追加する
60 を ランキング に追加する
// 新記録の挿入
もし <最終スコア > ランキング の 1 番目> なら
ランキング の 1 番目に 最終スコア を挿入する
ランキング の 4 番目を削除する
終わり
🎯 用途:リストの特定項目を取得
📝 構文:[リスト名] の [位置] 番目
💡 例:ランキング の 1 番目
🔧 応用:データ参照、順位表示

「○に○が含まれる項目番号」

Section titled “「○に○が含まれる項目番号」”
🎯 用途:リスト内の項目検索
📝 構文:[リスト名] に [値] が含まれる項目番号
💡 例:プレイヤーリスト に "太郎" が含まれる項目番号
🔧 応用:検索機能、存在確認
🎯 用途:リストの項目数を取得
📝 構文:[リスト名] の長さ
💡 例:ランキング の長さ
🔧 応用:ループ制御、容量確認
🎯 用途:リスト内の項目存在確認
📝 構文:[リスト名] に [値] が含まれる
💡 例:禁止ワードリスト に 入力文字 が含まれる
🔧 応用:フィルタリング、検証

実用例

// プレイヤー管理システム
// 新規プレイヤー登録
もし <プレイヤーリスト に 新しい名前 が含まれる> なら
"その名前は既に使用されています" と言う
でなければ
新しい名前 を プレイヤーリスト に追加する
"登録完了!" と言う
終わり
// プレイヤー一覧表示
1 から プレイヤーリスト の長さ まで繰り返す
カウンター と ": " と プレイヤーリスト の カウンター 番目 をつなげたものを言う
終わり
🎯 用途:独自のブロックを定義
📝 構文:[ブロック名] を定義する
💡 例:"挨拶する" を定義する
🔧 応用:コードの再利用、機能のモジュール化

実用例

// カスタムブロック定義
"正方形を描く" を定義する
4 回繰り返す
100 歩動かす
右に 90 度回す
終わり
// 使用方法
緑の旗がクリックされたとき
正方形を描く
🎯 用途:パラメータを受け取るブロック
📝 構文:引数を含むブロック定義
💡 例:"○歩で正方形を描く" を定義する
🔧 応用:柔軟な機能、パラメータ化

実用例

// 引数付きブロック定義
"サイズ (大きさ) で正方形を描く" を定義する
4 回繰り返す
大きさ 歩動かす
右に 90 度回す
終わり
// 使用方法
サイズ (50) で正方形を描く
サイズ (100) で正方形を描く

「画面を再描画せずに実行する」オプション

Section titled “「画面を再描画せずに実行する」オプション”
🎯 用途:高速実行のための最適化
📝 構文:ブロック定義時のオプション
💡 例:描画処理の高速化
🔧 応用:パフォーマンス向上、大量処理
// 効率的なメインループ
緑の旗がクリックされたとき
ずっと
// 入力処理
もし <右向き矢印 キーが押された> なら
x座標を 5 ずつ変える
終わり
// 物理演算
重力を適用する
// 衝突判定
衝突をチェックする
// 画面更新
画面を更新する
// フレームレート制御
0.016 秒待つ // 約60FPS
終わり
// ゲーム状態に応じたループ
ゲーム中 まで繰り返す
プレイヤー入力を処理する
敵の動きを更新する
当たり判定を実行する
終わり
// 状態変数の定義
変数 [ゲーム状態] を作る // "メニュー", "プレイ中", "ポーズ", "終了"
// 状態に応じた処理
もし <ゲーム状態 = "メニュー"> なら
メニュー画面を表示する
でなければ
もし <ゲーム状態 = "プレイ中"> なら
ゲームロジックを実行する
でなければ
もし <ゲーム状態 = "ポーズ"> なら
ポーズ画面を表示する
終わり
終わり
終わり
// プレイヤー情報をリストで管理
リスト [プレイヤー名] を作る
リスト [プレイヤースコア] を作る
リスト [プレイヤーレベル] を作る
// データの追加
"太郎" を プレイヤー名 に追加する
1500 を プレイヤースコア に追加する
3 を プレイヤーレベル に追加する
// データの検索と表示
変数 [プレイヤー番号] を プレイヤー名 に "太郎" が含まれる項目番号 にする
もし <プレイヤー番号 > 0> なら
プレイヤー名 の プレイヤー番号 番目 と "のスコア: " と プレイヤースコア の プレイヤー番号 番目 をつなげたものを言う
終わり

🎮 イベント駆動プログラミング

Section titled “🎮 イベント駆動プログラミング”
// イベント送信者
スペース キーが押されたとき
"ジャンプ開始" を送る
// イベント受信者1(プレイヤー)
"ジャンプ開始" を受け取ったとき
y座標を 20 ずつ変える
// イベント受信者2(効果音)
"ジャンプ開始" を受け取ったとき
ジャンプ音 の音を鳴らす
// イベント受信者3(エフェクト)
"ジャンプ開始" を受け取ったとき
ジャンプエフェクト のクローンを作る
// 重力と跳ね返りの実装
変数 [速度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 にする
終わり
終わり
// 円運動の実装
変数 [角度] を 0 にする
変数 [半径] を 100 にする
ずっと
x座標を 半径 × 角度 の cos にする
y座標を 半径 × 角度 の sin にする
角度を 角度 + 5 にする
終わり
// パーティクル生成
"爆発" を受け取ったとき
20 回繰り返す
パーティクル のクローンを作る
終わり
// パーティクルスプライト
クローンされたとき
爆発位置 に行く
向きを 1 から 360 までの乱数 度にする
変数 [寿命] を 30 にする
ずっと
3 歩動かす
大きさを 98 % にする
寿命 を -1 ずつ変える
もし <寿命 < 1> なら
このクローンを削除する
終わり
終わり
// イージング関数の実装
"滑らかに移動" を定義する
変数 [開始X] を x座標 にする
変数 [開始Y] を y座標 にする
変数 [進行度] を 0 にする
30 回繰り返す
進行度 を 進行度 + 1 にする
変数 [イージング値] を (進行度 / 30) × (進行度 / 30) にする
x座標を 開始X + ((目標X - 開始X) × イージング値) にする
y座標を 開始Y + ((目標Y - 開始Y) × イージング値) にする
0.033 秒待つ
終わり

🔧 デバッグとトラブルシューティング

Section titled “🔧 デバッグとトラブルシューティング”
// デバッグ情報の表示
"デバッグ情報を表示" を定義する
"X: " と x座標 をつなげたものを言う
"Y: " と y座標 をつなげたものを言う
"スコア: " と スコア をつなげたものを言う
"状態: " と ゲーム状態 をつなげたものを言う
// FPS計測
変数 [フレーム数] を 0 にする
変数 [開始時間] を タイマー にする
ずっと
フレーム数 を 1 ずつ変える
もし <タイマー - 開始時間 > 1> なら
"FPS: " と フレーム数 をつなげたものを言う
フレーム数 を 0 にする
開始時間 を タイマー にする
終わり
終わり
// 安全な除算
"安全に割る (数値) ÷ (除数)" を定義する
もし <除数 = 0> なら
結果 を 0 にする
でなければ
結果 を 数値 ÷ 除数 にする
終わり

🎯 最適化のベストプラクティス

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のすべてのブロックについて詳しく説明しました。各ブロックの基本的な使い方から高度な応用技術まで、実用的な例とともに学習できます。

  1. 基本から始める:まず基本的なブロックの使い方を理解する
  2. 実践で学ぶ:小さなプロジェクトで実際に使ってみる
  3. 組み合わせる:複数のブロックを組み合わせて複雑な機能を作る
  4. 最適化する:動作を改善し、より効率的なコードを書く
  5. 創造する:学んだ技術を使って独自のアイデアを実現する
  • プロジェクト作成:学んだブロックを使って実際のゲームやアニメーションを作成
  • コミュニティ参加:他の作品を見て学び、自分の作品を共有
  • 高度な技術:物理シミュレーション、AI、データ処理などに挑戦
  • 教育活動:学んだ知識を他の人に教える

プログラミングは創造的な活動です。 このリファレンスを参考に、あなた独自の素晴らしい作品を作り上げてください! 🎉✨


このリファレンスは継続的に更新されます。新しい機能や技術が追加された際は、最新の情報をチェックしてください。