top of page

一分間スクラッチ講座 スクロール5クローンで作成されたスプライトの幅を自動で取得する方法

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


作成済みのプロジェクトでは、複数のブロックをクローンで作成し、任意の初期位置に配置、スクロールで左右に移動する仕組みを作成しています。最初から作りたい場合は、下記の記事をご参照ください。

ここまでの作品で、複数のクローンがそれぞれの表示非表示されるべき境界線で表示されたり、隠れたりする仕組みができました。ただコスチュームが多くなった時、それぞれのコスチューム幅をリストに登録するのは面倒ですよね。

今回は、それぞれのコスチューム幅を自動で取得する方法をご紹介いたします。


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



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


1,スプライトの幅の取り方


まず、スプライトの幅の取り方の考え方ですが、下の図をベースにフローを説明します。

  1. スプライトを画面中心(x=0,y=0)に配置、この時スプライトが画面端に触れていないのが条件です。

  2. 右端に触れるまでx座標を1ずつ移動させます。

  3. 241-x座標(下図の?部分)がスプライトの幅の半分になります。

  4. その値を2倍にすればスプライトの幅になります。

スプライトの幅の取り方の説明図

2,ブロック定義で幅を取得


上で確認したフローは、コスチュームの数だけ実行します。超高速で実行するために、ブロック定義の「画面を再描画せずに実行する」にチェックを入れてブロックを作ります。

ブロック名は「はば取得」など、なんでも結構です。


ブロック定義の作成

ブロック定義内での処理は以下のようになります。

  1. リスト:はば の要素を全て削除

  2. 1番目のコスチュームを選択

  3. ずっと以下の処理を実行(コスチュームの数だけ、コスチューム数は変動)

    1. 座標をx、yともに0に指定

    2. 端に付くまでx座標をずつ移動

    3. スプライト幅(241-x座標)×2 をリスト:はば に追加

    4. コスチュームを次のコスチュームに更新

    5. もしコスチュームが1番目に戻っていたら処理中断

ブロック定義の作成

作成したブロック定義は、クローンを作成する直前に呼び出します。

ブロック定義の呼び出し

はい、これでブロックが何種類もあった時で、自動で幅を取得することができます。


 

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

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

コメント


bottom of page