提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。

ここでは、横スクロールの方法を解説する。横スクロールとは、スプライトではなく背景を動かすことによって、スプライトが動いているように見せるもので、プラットフォーマーなどに利用されている。

方式

いくらかの方式がある。

  • 画面外描画法 - 背景スプライトを作成し、そのx座標を変化させる。Scratchのスプライトは原則として完全に画面外に出ることができないため、隠す処理が必要。
  • 分割法 - 背景を細かく分割する。分割単位より細かく移動できない。
    • スタンプ分割法 - 移動ごとにスタンプする。
    • クローン分割法 - 分割した背景をクローンとして表示する。
  • ペン描画 - 移動ごとに再描画する。100%penのスクロール式プラットフォーマーはすべてこの方法。

1スプライト画面外描画式の横スクロール

ここでは、1スプライト画面外描画式の横スクロールを作成する。縦スクロールの場合はx座標をy座標と読み替え、数値を調節すること。

コントロール

横スクロールではx座標ブロックの代わりに変数を使用する。「x」という変数を作成する。そして、以下のようなスクリプトを置く。(どこでもよい。)

@greenFlag が押されたとき::hat events
[x v]を[0]にする
ずっと
もし <(右向き矢印 v) キーが押された>なら
[x v]を(10)ずつ変える
end
もし <(左向き矢印 v) キーが押された>なら
[x v]を(-10)ずつ変える
end
end

これは、左右キーでスプライトを操作するときのスクリプトの動きブロックを変数への代入に置き換えただけだ。

背景

ステージは動かせないため、「背景」という名前のスプライトを使う。480x360のコスチュームを数個用意する。また、クローンを内部で使用するため、個数は300以下にしないといけない。クローンの識別用に、このスプライトのみの変数「clone id」を作る。また、あとでコスチュームを追加しやすいように変数「コスチュームの個数」を作り、コスチュームの個数を入れる。(自動化もできる。)ここではコスチューム4個とする。

@greenFlagが押されたとき::events hat
x座標を(0)、y座標を(0)にする // 初期化
コスチュームを(() + (1))にする // 最初のコスチュームにする
[コスチュームの個数 v]を[4]にする
[最背面 v]に移動する::looks
[clone id v]を[0]にする
(コスチュームの個数)回繰り返す
  次のコスチュームにする
  [clone id v]を(1)ずつ変える
  [自分自身 v]のクローンを作る
end
[clone id v]を[0]にする
移動の処理::custom

クローンされたとき
[最背面 v]に移動する::looks
移動の処理::custom

定義 移動の処理
ずっと
  x座標を(((clone id)*(480)) - ((x)を((コスチュームの個数)*(480))で割った余り))にする
  もし<(x座標)>[-465]>なら
    表示する
  でなければ
    隠す
  end
end

関連項目