コンテンツにスキップ

初めてのゲーム作り

初めてのゲーム作り:「スターキャッチャー」

Section titled “初めてのゲーム作り:「スターキャッチャー」”

Scratch 3.0とVibelfを使って、楽しくてインタラクティブなゲームを一から作ってみましょう!このガイドでは、「スターキャッチャー」という星を集めるゲームを作成します。

スターキャッチャーは、プレイヤーがキャラクターを操作して落ちてくる星を集めるゲームです。

⭐ 空から落ちてくる星をキャッチする
🎮 矢印キーでキャラクターを左右に移動
💎 星をキャッチするとポイント獲得
💣 爆弾に当たるとゲームオーバー
⏰ 時間制限内にできるだけ多くの星を集める

このプロジェクトを通して以下のスキルを習得できます:

  • イベント処理:キー入力への反応
  • 動きと座標:スプライトの位置制御
  • 変数:スコアと時間の管理
  • 条件分岐:当たり判定とゲーム状態
  • ループ:継続的な動作
  • ランダム:予測不可能な要素
  • ゲームメカニクス:基本的なゲームシステム
  • ユーザーインターフェース:スコア表示
  • フィードバック:音と視覚効果
  • バランス調整:難易度設定

🎭 キャラクターとオブジェクト

Section titled “🎭 キャラクターとオブジェクト”
🐱 名前:「キャッチャー」
🎨 見た目:猫またはオリジナルキャラクター
🎮 操作:左右矢印キーで移動
📍 位置:画面下部を左右に移動
⭐ 名前:「スター」
🎨 見た目:黄色い星
📉 動き:上から下に落下
💎 効果:キャッチで+10ポイント
🔄 生成:ランダムな間隔で出現
💣 名前:「ボム」
🎨 見た目:黒い爆弾
📉 動き:上から下に落下
💥 効果:当たるとゲームオーバー
🔄 生成:星より低い頻度で出現
📊 初期スコア:0
⭐ 星キャッチ:+10ポイント
🏆 ボーナス:連続キャッチで追加ポイント
📈 表示:画面上部に常時表示
⏰ ゲーム時間:60秒
⏱️ カウントダウン:画面に表示
🔚 終了条件:時間切れまたはゲームオーバー
📈 時間経過で落下速度アップ
🔢 星の出現頻度増加
💣 爆弾の出現頻度も増加
🎯 バランスの取れた挑戦

🖼️ ユーザーインターフェース

Section titled “🖼️ ユーザーインターフェース”
🔝 上部:スコアと残り時間
🎮 中央:ゲームエリア
🔽 下部:プレイヤーキャラクター
📱 サイド:操作説明(オプション)
📊 "スコア: [数値]"
⏰ "時間: [秒]"
🎮 "矢印キーで移動"
🏆 "ハイスコア: [数値]"
📍 中心:(0, 0)
➡️ X軸:左(-240)から右(240)
⬆️ Y軸:下(-180)から上(180)
🎯 プレイヤー位置:Y = -150(下部)
⭐ 星の開始位置:Y = 180(上部)
// プレイヤーの移動範囲
左端:X = -200
右端:X = 200
// アイテムの落下
開始:Y = 180
終了:Y = -180
削除:Y < -200
📊 スコア:ゲームポイント
⏰ 時間:残り時間(秒)
🎮 ゲーム状態:"プレイ中" / "終了"
🏆 ハイスコア:最高記録
🔢 速度:落下スピード
// スコア更新
スコア を 10 ずつ変える
// 時間管理
時間 を -1 ずつ変える
// 速度調整
速度 を 0.1 ずつ変える
🚩 緑の旗がクリックされたとき:ゲーム開始
⌨️ キーが押されたとき:プレイヤー移動
📨 メッセージを受け取ったとき:ゲーム終了
👥 スプライトに触れたとき:当たり判定
📤 "ゲーム開始" → 全スプライトに開始を通知
📤 "ゲーム終了" → 全スプライトに終了を通知
📤 "スコア更新" → スコア表示を更新
📤 "レベルアップ" → 難易度上昇

ステップ1:プレイヤーキャラクターの作成

Section titled “ステップ1:プレイヤーキャラクターの作成”
1. 新しいプロジェクトを作成
2. デフォルトの猫スプライトを使用(または新しいスプライトを選択)
3. スプライトの名前を「プレイヤー」に変更
4. 必要に応じてコスチュームを編集
緑の旗がクリックされたとき
ずっと
もし <左向き矢印キーが押された> なら
x座標を -5 ずつ変える
終わり
もし <右向き矢印キーが押された> なら
x座標を 5 ずつ変える
終わり
もし <x座標 < -200> なら
x座標を -200 にする
終わり
もし <x座標 > 200> なら
x座標を 200 にする
終わり
終わり
緑の旗がクリックされたとき
x座標を 0 にする
y座標を -150 にする
向きを 90 度にする

ステップ2:星スプライトの作成

Section titled “ステップ2:星スプライトの作成”
1. 新しいスプライトを追加
2. 「星」を選択または描画
3. 名前を「スター」に変更
4. 適切なサイズに調整
緑の旗がクリックされたとき
ずっと
x座標を -240 から 240 までの乱数 にする
y座標を 180 にする
表示する
ずっと
y座標を -3 ずつ変える
もし <y座標 < -200> なら
抜ける
終わり
もし <プレイヤー に触れた> なら
スコア を 10 ずつ変える
ポップ の音を鳴らす
抜ける
終わり
終わり
隠す
1 から 3 までの乱数 秒待つ
終わり

ステップ3:爆弾スプライトの作成

Section titled “ステップ3:爆弾スプライトの作成”
1. 新しいスプライトを追加
2. 「爆弾」を選択または描画
3. 名前を「ボム」に変更
4. 黒色で危険な見た目に
緑の旗がクリックされたとき
ずっと
x座標を -240 から 240 までの乱数 にする
y座標を 180 にする
表示する
ずっと
y座標を -2 ずつ変える
もし <y座標 < -200> なら
抜ける
終わり
もし <プレイヤー に触れた> なら
"ゲーム終了" を送る
抜ける
終わり
終わり
隠す
5 から 8 までの乱数 秒待つ
終わり
1. 「データ」セクションで「変数を作る」
2. 「スコア」変数を作成
3. 「時間」変数を作成
4. 「ゲーム状態」変数を作成

🎯 スコア管理(プレイヤースプライト)

Section titled “🎯 スコア管理(プレイヤースプライト)”
緑の旗がクリックされたとき
スコア を 0 にする
時間 を 60 にする
ゲーム状態 を "プレイ中" にする
// 時間管理
ずっと
もし <ゲーム状態 = "プレイ中"> なら
1 秒待つ
時間 を -1 ずつ変える
もし <時間 < 1> なら
"ゲーム終了" を送る
終わり
終わり
終わり
"ゲーム終了" を受け取ったとき
ゲーム状態 を "終了" にする
すべてを止める [このスクリプト以外]
"ゲーム終了!" と言う
"最終スコア: " と スコア をつなげたものを 3 秒言う

星をキャッチした時の効果

// スタースプライトに追加
もし <プレイヤー に触れた> なら
色 の効果を 25 ずつ変える
大きさを 150 % にする
0.2 秒待つ
大きさを 100 % にする
隠す
終わり

爆弾に当たった時の効果

// プレイヤースプライトに追加
"ゲーム終了" を受け取ったとき
3 回繰り返す
色 の効果を 50 にする
0.1 秒待つ
色 の効果を 0 にする
0.1 秒待つ
終わり

効果音の追加

⭐ 星キャッチ:"ポップ" または "コイン"
💣 爆弾ヒット:"爆発" または "ブザー"
🎵 背景音楽:"ループ" 設定で継続再生
🏁 ゲーム終了:"ファンファーレ" または "悲しい音"

音の実装

// 星キャッチ時
ポップ の音を鳴らす
// 爆弾ヒット時
爆発 の音を鳴らす
// 背景音楽(プレイヤースプライト)
緑の旗がクリックされたとき
ずっと
もし <ゲーム状態 = "プレイ中"> なら
音楽 の音を最後まで鳴らす
終わり
終わり

ハイスコア変数の追加

// 新しい変数「ハイスコア」を作成
緑の旗がクリックされたとき
もし <ハイスコア が定義されていない> なら
ハイスコア を 0 にする
終わり
// ゲーム終了時にチェック
"ゲーム終了" を受け取ったとき
もし <スコア > ハイスコア> なら
ハイスコア を スコア にする
"新記録!" と 2 秒言う
終わり

速度変数の追加

// 新しい変数「速度」を作成
緑の旗がクリックされたとき
速度 を 3 にする
// 時間経過で速度アップ
ずっと
もし <時間 を 10 で割った余り = 0> なら
速度 を 0.5 ずつ変える
終わり
1 秒待つ
終わり
// 星の落下に速度を適用
y座標を (速度) × -1 ずつ変える

連続キャッチボーナス

// 新しい変数「コンボ」を作成
緑の旗がクリックされたとき
コンボ を 0 にする
// 星キャッチ時
もし <プレイヤー に触れた> なら
コンボ を 1 ずつ変える
スコア を (10 + コンボ) ずつ変える
"コンボ x" と コンボ をつなげたものを 1 秒言う
終わり
// 爆弾ヒット時
"ゲーム終了" を受け取ったとき
コンボ を 0 にする
// 悪い例:毎フレーム計算
ずっと
もし <(x座標 × x座標) + (y座標 × y座標) > 10000> なら
// 処理
終わり
終わり
// 良い例:必要時のみ計算
距離 を (x座標 × x座標) + (y座標 × y座標) にする
もし <距離 > 10000> なら
// 処理
終わり
// スプライトの適切な削除
もし <y座標 < -200> なら
隠す
このクローンを削除する
終わり
// 不要な変数のリセット
"ゲーム終了" を受け取ったとき
一時変数 を 0 にする
✅ プレイヤーの移動が正常
✅ 星の落下と当たり判定
✅ 爆弾の当たり判定
✅ スコアの正確な計算
✅ 時間制限の動作
✅ ゲーム終了の処理
✅ 音響効果の再生
✅ 視覚効果の表示
// デバッグ用の表示
"x座標: " と x座標 をつなげたものを言う
"スコア: " と スコア をつなげたものを言う
// 一時停止機能
もし <スペース キーが押された> なら
"一時停止" と言う
スペース キーが押されるまで待つ
終わり
🌈 背景の追加
✨ パーティクル効果
🎭 キャラクターアニメーション
📊 より良いUI設計
🎨 カラフルな色彩設計
🎮 新しいアイテムタイプ
🏃 プレイヤーの特殊能力
🎯 複数のレベル
🏆 実績システム
👥 マルチプレイヤー機能
1. プロジェクトを保存
2. 「共有」ボタンをクリック
3. タイトルと説明を追加
4. タグを設定
5. 公開設定を確認
🎯 ゲームの目的
🎮 操作方法
🏆 高得点のコツ
🛠️ 使用した技術
💡 今後の改善予定
1. 🎬 ゲームのデモンストレーション
2. 🛠️ 作成過程の説明
3. 🧠 学んだことの共有
4. 🎯 今後の改善計画
5. ❓ 質疑応答
😊 自信を持って話す
🎮 実際にゲームをプレイして見せる
🤔 困難だった点を正直に話す
💡 創意工夫した点を強調
👥 聴衆の反応を見ながら調整
🎯 レベル1:基本的な星キャッチ
🎯 レベル2:爆弾の追加
🎯 レベル3:速度アップ
🎯 レベル4:特殊アイテム
🎯 レベル5:ボスキャラクター
💎 ダイヤモンド:高得点アイテム
⚡ 稲妻:一時的な無敵状態
🕐 時計:時間延長
🎁 ミステリーボックス:ランダム効果
🛡️ シールド:爆弾から保護
🏃 ダッシュ:高速移動
🦘 ジャンプ:垂直移動
🧲 マグネット:アイテムを引き寄せ
👻 ゴースト:一時的に透明化
⭐ スターバースト:画面の星を全て獲得
🔄 クローン機能
📋 リストとデータ管理
🎨 カスタムブロック
🌐 クラウド変数
🤖 AI的な動作
🏃 プラットフォームゲーム
🧩 パズルゲーム
🎨 アートジェネレーター
📊 データ可視化
🤖 チャットボット

🌟 プログラミングスキルの向上

Section titled “🌟 プログラミングスキルの向上”
🎯 ユーザー体験の考慮
⚖️ ゲームバランスの調整
🎨 美的センスの向上
🔧 効率的なコード作成
🧪 体系的なテスト
👥 他の作品からの学習
🤝 協力プロジェクト
💬 建設的なフィードバック
📚 知識の共有
🏆 コンテストへの参加

「スターキャッチャー」ゲームの作成を通して、以下のスキルを習得しました:

  • イベント駆動プログラミング:ユーザー入力への反応
  • 状態管理:ゲームの状態とデータの管理
  • 衝突検出:オブジェクト間の相互作用
  • ランダム性:予測不可能な要素の追加
  • タイミング制御:時間ベースのゲームメカニクス
  • ゲームループ:継続的なゲームプレイ
  • フィードバックシステム:プレイヤーへの反応
  • 難易度曲線:適切な挑戦レベル
  • ユーザーインターフェース:情報の効果的な表示
  • ゲームバランス:楽しさと挑戦のバランス
  • 段階的開発:小さな機能から始めて拡張
  • テストとデバッグ:問題の発見と解決
  • 反復改善:フィードバックに基づく改良
  • ドキュメント化:コードと設計の記録
  • 共有と発表:作品の効果的なプレゼンテーション

おめでとうございます! あなたは初めてのゲームを完成させました。この経験を基に、さらに複雑で創造的なプロジェクトに挑戦してください。プログラミングの世界は無限の可能性に満ちています! 🎉✨


このガイドがあなたのプログラミング学習の第一歩となることを願っています。質問や困ったことがあれば、Vibelfコミュニティや先生に相談してください。