ファイブボックス一分間スクラッチ講座アイキャッチ画像
一分間スクラッチ講座 スクロール で相対的な移動を作成する方法 第1弾

このブログテーマでは、スクラッチの初心者から上級者まで、ちょっとお役に立つ情報を不定期で紹介していきます。

今回はスクラッチでよく使用される「スクロール」の使い方についてご説明します。「スクロール」とは、移動対象のキャラクターの座標を固定しておいて、または移動幅を小さくして周りの背景やキャラクターを反対側移動させます。そうするとあたかも操作するキャラクターが移動しているように見える、という技法です。

今回の完成作品を共有しますので、イメージがつかめない方はご参照ください。

下の動画は不定期配信の「ファイブボックス 一分間スクラッチ講座」です。ご興味のある方は併せてご参照ください。

キャラクターのプログラム

まずは操作対象のキャラクター(プレイヤーとします

まずは変数を2つ用意します。

  • スクロールX – キャラクターのスクロール量を管理します
  • スピードX – x軸方向の移動量を管理、移動量が大きいと速く進みます
スクロールを実現するための変数

続いてプレイヤーのプログラムを作成します。

今回はジャンプの動きで作成済みの作品にスクリプトを追加します。ジャンプの動きも併せて作成していきたい場合は、こちらからご参照ください。

旗が押されたとき

  • 大きさを50%に指定 – ジャンプのプログラムより小さくします
  • 回転方法を左右のみ – 左を向いてもひっくり返らないように
  • 変数:スクロールXを初期化(0に指定)
  • 変数:スピードXを5に指定(移動の速さは任意です)
  • ずっと以下の処理をし続ける
    • 右向き矢印キーが押されたときの処理
      • スクロールX を – スピードX ずつ更新
      • 90度(右向き)に向ける
      • 次のコスチュームに変更(走るアニメーション)
    • 左向き矢印キーが押されたときの処理
      • スクロールX を スピードX ずつ更新
      • – 90度(右向き)に向ける
      • 次のコスチュームに変更(走るアニメーション)
スクロールのスクリプト

左右のキーが押されたときはプレイヤー自身のX座標は変更せず、変数:スクロールXの値のみ更新します。

他のスプライトのプログラム

プレイヤーは移動せず周りのスプライトを移動させることで、あたかもプレイヤーが移動しているかのように見せます。

今回はジャンプの天井跳ね返りの検証の際に作成したブロックを使用します。名前を「ブロック1」にしておきましょう。

事前に「このスプライトのみ」にチェックを入れた変数を用意します。

変数名は「初期位置X」にしておきます(任意の名前でOK)。

「このスプライトのみ」にチェックを入れると、クローンを作った際、1つ1つのスプライトやクローンがそれぞれの値を持つことができます。

子のスプライトのみにチェックを入れて変数を用意

ゲーム中の動きを作成します。

旗が押されたとき

  • 変数:初期位置Xを100にする(ゲーム開始時のブロック1のx座標)
  • ずっと以下の処理を続けます
    • x座標を、変数:初期位置X + 変数:スクロールX にする
スクロール対象スプライトの動き

これでスクロールの基本の動きが完成しました。

前回までのYoutubeショート動画

初回スクラッチの加速(物理・重力)ジャンプ基本編

第2弾スクラッチの加速(物理・重力)ジャンプ沈み込み補正編

第3弾スクラッチの加速(物理・重力)二段ジャンプ制御編

第4弾スクラッチの加速(物理・重力)天井跳ね返り編

ジャンプの跳ね返りの問題

作成したサンプルには1つ問題があります。

前回まで出来ていた「天井跳ね返り」の動きが出来なくなっているようです。これはコスチュームの変更を行ったために発生した問題です。

次回の動画ではこの問題を解決するところから解説します。

ファイブボックスでは、スクラッチやUnityの個別指導のオンラインレッスンを行っています。

ご興味のある方は当サイト、オンラインレッスンから、無料体験授業へお問い合わせ下さい。

TOP