さぁ、スクラッチでナニ作る!?
チュートリアルの元になった作品
今回の目標
- マウスでルアーを上下操作し、深い魚ほど高得点でつり上げる
- フグに触れると減点&一時的にルアーがしびれて操作不能になる
- 制限時間60秒でスコアを競うアクションゲームを完成させる
スターター作品をリミックスしよう
このチュートリアルにはスターター作品があります。使わなくても大丈夫だけど、最低限の素材などが用意されてるので便利です。
スターター作品をダウンロード
#1ステージ: ゲームの下ごしらえ
準備
スプライト「stage」を開く
| スプライトについて |
|---|
| 水中を舞台にした魚釣りゲームのステージ。制限時間内にスコアを競う。 |
変数「★スコア」を追加
プレイヤーの現在の得点。魚を釣ると増え、フグに当たると減る。
変数「★しびれ状態」を追加
フグに当たってルアーがしびれているかどうかを表すフラグ。
実装
が押されたときで旗が押されたら、背景を水中に切り替えて、「★スコア」と「★しびれ状態」を0に戻すよ。
ゲームのはじめに数字をリセットしとくの、地味だけどめっちゃ大事なやつ。前回の得点が残ってたら台無しだよね。
#2ステージ: タイマー
準備
変数「★残り時間」を追加
ゲーム終了までの残り秒数。
変数「★ゲーム状態」を追加
ゲームが進行中かどうかを表す状態フラグ(1:進行中/0:終了)。
メッセージ「ゲーム開始」を追加
実装
「★残り時間」を60、「★ゲーム状態」を1にしてから( ) を送るで「ゲーム開始」の合図を飛ばすんだ。この合図を受け取った各スプライトが一斉に動き出す。
あとは( ) まで繰り返すで、1秒待っては「★残り時間」を1ずつ減らすループ。0になったら抜ける仕組みだね。
#3ルアー: ルアーの初期設定
準備
スプライト「ルアー」を開く
| スプライトについて |
|---|
| マウスの上下操作で動く釣り針(疑似餌)。魚やフグとの当たり判定を持つ。 |
| どんな役割か |
| マウスを押すとルアーが沈み、離すと浮かぶよ。魚に当てるとポイントゲット、フグに当たるとしびれてペナルティ! |
実装
が押されたときでルアーの見た目に切り替えて、大きさを45、位置を画面の上のほうにセット。
画像効果をなくすで画像効果もまっさらにしとくよ。前のプレイでかけた効果が残ってると見た目バグるんだよね。
#4ルアー: マウス追従
( ) まで待つで「★ゲーム状態」が1になるまで待ってから、ずっとの中でx座標を ( ) にするを使ってルアーのX座標をマウスのX座標にピタッと合わせるんだ。
これでルアーが左右のマウス移動にそのままついてくる感じだね。
#5ルアー: 沈むか浮くか
もし ( ) ならでなければの条件が( ) かつ ( )でつながってて、「マウスが押されてる」かつ「★しびれ状態」が0のときだけ沈む処理に入る。
しびれてるときは操作できなくする、っていう伏線がここにあるってわけ。
#6ルアー: 深さの制限
もし ( ) ならでY座標が-160より上のときだけy座標を ( ) ずつ変えるで下に5動かす。逆に浮くほうは140より下のときだけ8ずつ上げるんだ。
数字を直接いじらずに、範囲をはみ出さないよう見張ってから動かすのがコツ。画面外にすっ飛んでいくのを防いでるんだ。
#7ボート: モニター表示
準備
スプライト「ボート」を開く
ボート| スプライトについて |
|---|
| 釣り糸を垂らして魚を釣るための舟。プレイヤーがマウスで操作する。 |
| どんな役割か |
| マウスでボートの下のルアーを動かして魚を釣るよ。ふかい場所の魚ほど高得点、フグに当たると減点になるスコアアタックゲームを作るよ! |
実装
が押されたときで変数 ( ) を表示するを使って「★スコア」と「★残り時間」の表示をオンにするよ。
変数の値を画面に出しとくと、プレイヤーが今の状況をひと目で把握できるやつ。
変数を画面に出すか隠すかは変数 ( ) を表示すると変数 ( ) を隠すで切り替えられるから、見せたい数字だけ選べるんだね。
#8ボート: ボートの配置
大きさを70にして、x座標を ( ) 、y座標を ( ) にするで画面の左上あたりに配置してから表示するで表示。
水面にボートが浮かんでる位置、みたいな感じに置くわけだね。
#9ボート: 操作説明
( ) を受け取ったときで「ゲーム開始」を受け取ったら、( ) と ( ) 秒言うで操作説明を数秒ずつしゃべらせるんだ。
最初にルールを見せとくと親切だよね。「フグに触ると減点」って予告しとくのが効いてる。
#10魚: 魚の準備
準備
スプライト「魚」を開く
| スプライトについて |
|---|
| 水中を泳ぎ、ルアーに触れると得点になる魚。クローンで複数出現する。 |
| どんな役割か |
| 深い場所にいる魚ほど高得点になるよ。ランダムな深さと種類でクローンがつぎつぎ泳いでくるよ。 |
変数「■クローンかどうか」を追加
このスプライトがクローンかどうかを表すフラグ。
実装
が押されたときで「■クローンかどうか」を0にして、本体は左端に置いて隠すで隠しとく。
本体は表に出さず、分身だけを泳がせる作戦。この0っていう印が、あとで本体と分身を見分けるカギになるんだ。
本体を隠してクローンだけ動かすこのやり方、敵をいっぱい出すゲームだとかなり定番なんだ。
#11魚: クローン生成
( ) まで繰り返すで「★ゲーム状態」が0になるまで、( ) のクローンを作るでクローンを1匹生成しては( ) 秒待つでランダムな間隔あける、を繰り返すんだ。
待ち時間が0.8〜1.6秒でバラつくから、魚の出てくるタイミングが毎回ちょっと違って自然に見えるってわけ。
#12魚: レベル抽選
準備
変数「■魚のレベル」を追加
出現した魚の種類(深さ)を表す1〜3の値。
変数「■獲得ポイント」を追加
この魚を釣ったときに加算される得点。
実装
クローンされたときで目覚めたら「■クローンかどうか」を1にして、( ) から ( ) までの乱数で「■魚のレベル」に1〜3のどれかを入れる。
もし ( ) ならでレベルが1だったら浅い魚の見た目にして、得点を10に設定するんだ。
#13魚: 浅い魚の位置
x座標を ( ) 、y座標を ( ) にするで左端から、Y座標を-10〜40のランダムな高さにセット。浅い場所でユラユラ泳ぐ、みたいな。
#14魚: 中くらいの魚
もし ( ) ならでレベルが2なら、中くらいの見た目にして得点を20に。位置はさっきより深い-80〜-40のあたりに置くんだ。
浅い魚より深くて、点も高め。リスクとリターンのバランスだね。
レベルごとに深さと得点をセットで変えると、プレイヤーが自然に『深いほど強気に狙う』って駆け引きが生まれるんだ。
#15魚: 深い魚の判定
もし ( ) ならでレベルが3かどうかを確かめてから、次のステップで見た目と得点を決めていくよ。
#16魚: 深い魚の設定
深い場所用の見た目に切り替えて、得点は30と大盤振る舞い。x座標を ( ) 、y座標を ( ) にするで-155〜-110っていう画面のかなり下のほうに配置する。
深く潜るほど高得点だけど、下にはフグも待ち構えてるっていう緊張感がここで生まれるんだ。
#17魚: 共通の初期化
準備
変数「■泳ぐ速さ」を追加
魚が横に移動する速さ。
実装
大きさを60にそろえて、画像効果をなくすで画像効果をリセット。それから( ) から ( ) までの乱数で「■泳ぐ速さ」に2〜4のランダムな値を入れるんだ。
効果をリセットしとくの、地味だけど大事なやつ。前に釣られた魚の透明効果が新しいクローンに引き継がれちゃうのを防いでる。
#18魚: 泳ぎ出す
表示するで姿を見せて、ずっとの中でx座標を ( ) ずつ変えるを使って「■泳ぐ速さ」のぶんだけ右へ進め続ける。
速さがクローンごとに違うから、みんなバラバラのペースで泳いでいく感じ。
#19魚: 魚を釣る
もし ( ) ならの中で( ) に触れたでルアーに当たってるか調べて、しかも「★しびれ状態」が0のときだけ成立。
条件が通ったら「Pop」の音を鳴らして、「★スコア」にその魚の「■獲得ポイント」を足すんだ。深い魚ほどガッツリ増える。
#20魚: 釣れた演出
( ) 回繰り返すを6回まわして、大きさを少しずつ大きくしながら( ) の効果を ( ) ずつ変えるで「幽霊」の効果を上げていくんだ。
だんだん大きく透けていって、最後にこのクローンを削除するで消える。フワッと釣り上げた感じが出るやつ。
だんだん透明にする演出は( ) の効果を ( ) ずつ変えるの値を少しずつ足すのがミソで、一気に消すより手が込んで見えるんだ。
#21魚: 画面外の掃除
もし ( ) ならでX座標が250を超えたらこのクローンを削除するでクローンを削除。
画面の外に出たクローンをちゃんと片付けるの、さっき話したクローン上限を守るためにも欠かせないとこだね。
#22フグ: フグの準備
準備
スプライト「フグ」を開く
| スプライトについて |
|---|
| ルアーに触れるとスコアを減点させる邪魔者キャラクター。クローンで複数出現する。 |
| どんな役割か |
| フグにルアーが触れるとスコアが減ってしびれてしまうよ。魚とフグを見分けてルアーを操作しよう! |
変数「■クローンかどうか」を追加
このスプライトがクローンかどうかを表すフラグ。
実装
作りは魚とそっくり。 が押されたときで「■クローンかどうか」を0にして、本体は隠しておくんだ。
本体を隠してクローンだけ動かす、この形はもう魚で見たよね。
#23フグ: フグの生成
( ) まで繰り返すで「★ゲーム状態」が0になるまで、クローンを生成してはランダムに待つ、の繰り返し。
待ち時間は1.5〜3秒。魚より長めにして、フグはちょっと少なめに出るようにしてるんだ。
魚とフグで出現ペースを変えるだけで、難しさのバランスをけっこう細かく調整できるんだよ。
#24フグ: フグの見た目
クローンされたときで目覚めたら「■クローンかどうか」を1にして、通常のフグの見た目にセット。大きさは55にするよ。
位置はx座標を ( ) 、y座標を ( ) にするで-150〜-40のランダムな深さ。魚と同じで、出るたびに高さが変わる。
出るたびに深さがランダムで変わると、同じ場所で待ち伏せする作戦が通じなくて飽きずに遊べるんだよ。
#25フグ: フグが泳ぐ
準備
変数「■泳ぐ速さ」を追加
フグが横に移動する速さ。
実装
「■泳ぐ速さ」に3〜5のランダム値を入れて、画像効果をなくすで効果をリセットしてから表示。ずっとで速さのぶん右へ進め続けるんだ。
魚より速めの設定だから、フグはスッと横切ってくる感じ。避けるのがちょい難しいんだよね。
#26フグ: フグに触れる
もし ( ) ならで( ) に触れたと「★しびれ状態」が0の条件がそろったら、「Bonk」の音を鳴らして膨らんだ見た目に変える。
そして「★スコア」が5マイナスされるんだ。せっかく貯めた点が減るの、地味に痛いとこだね。
#27フグ: 減点の下限
もし ( ) ならで「★スコア」が0より小さいかを調べるよ。
#28フグ: 0で止める
( ) を ( ) にするで「★スコア」を0にセット。これでマイナス点にはならない仕組み。
減点はあっても、下限を決めておくとプレイヤーが心折れずに最後まで遊べるんだ。
#29フグ: しびれをセット
( ) を ( ) にするで「★しびれ状態」を1にするだけ。たったこれだけなんだけど、これが3つのスプライトに一斉に効いてくるんだ。
実際の演出や操作停止はこの数字を見て、ルアーや魚が勝手にやってくれるんだよ。
#30フグ: フグの掃除
もし ( ) ならでX座標が250を超えたらこのクローンを削除するで削除。魚と同じ後始末だね。
#31ルアー: しびれの監視
準備
スプライト「ルアー」を開く
実装
ずっとの中で( ) まで待つを使って「★しびれ状態」が0より大きくなるのをずっと見張る。1になった瞬間、( ) の効果を ( ) にするで「幽霊」の効果を50にしてルアーを半透明にするよ。
#32ルアー: しびれ解除
( ) 秒待つで1秒待ってから、「幽霊」の効果を0に戻して元の見た目に。最後に「★しびれ状態」を0にリセットするんだ。
この0に戻す一手が超大事。ここを忘れると、ずっとしびれっぱなしで二度と操作できなくなる。
#33ステージ: ゲーム終了
準備
スプライト「stage」を開く
ステージ
メッセージ「ゲーム終了」を追加
実装
タイマーが0になってループを抜けたら、「★ゲーム状態」を0にして( ) を送るで「ゲーム終了」の合図を送る。
この合図で、動いてたスプライトたちが一斉に終わりの動きに入るってわけ。
#34ボート: 結果発表
準備
スプライト「ボート」を開く

実装
( ) を受け取ったときで「ゲーム終了」を受け取って、「Win」の音を鳴らす。それから( ) と言うで( ) と ( )を使って「スコア」の文字と数字をつなげて表示するんだ。
文字と実際の点をくっつけて出す、これで結果がひと目で分かる感じ。
#35ルアー: ルアーを片付ける
準備
スプライト「ルアー」を開く
実装
の『スプライトの他のスクリプト』を使って、ルアーの上下移動ループだけを止めるんだ。それから位置と画像効果をリセット。
他のスプライトのループは止めずに、自分の動きだけをピンポイントで停止できるのがこの止め方のいいとこ。
#36魚: 魚の後始末
準備
スプライト「魚」を開く
実装
( ) を受け取ったときの合図って、実はクローンにも本体にも届いちゃうんだよね。だからもし ( ) ならで「■クローンかどうか」を確かめて処理を分けるよ。
本体なら動きを止めるだけ、クローンならこのクローンを削除するで自分を消す。この見分けがないと本体まで消えちゃう。
#37フグ: フグの後始末
準備
スプライト「フグ」を開く
実装
「ゲーム終了」を受け取ったら、もし ( ) ならで「■クローンかどうか」をチェック。本体は止めて、クローンはこのクローンを削除するで消すよ。
これで「つり2」が完成! 制限時間のなかで深い魚を狙いつつ、フグをよける駆け引きを楽しんでみてね。
まとめ
グローバル変数ひとつで複数のスプライトのスタン状態を同期させる仕組み、意外とシンプルだったよね。クローンのレベル抽選で外見・得点・出現位置をまとめて決めるやり方も、いろんなゲームに応用できるテクニックだから覚えておこう。次は自分だけの魚やペナルティキャラを追加して、オリジナルの釣りゲームに育ててみてね。