提供: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以下にしないといけない。クローンの識別用に、このスプライトのみの変数「クローンID」を作る。また、あとでコスチュームを追加しやすいように変数「コスチュームの個数」を作り、コスチュームの個数を入れる。(自動化もできる。)ここではコスチューム4個とする。

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

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

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

関連項目

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。