【スクラッチ】スプライトを使った無限ランダム横スクロールの方法

2021年2月16日火曜日

Scratch スクラッチ プログラミング

t f B! P L






 


スクラッチでランニングゲームを作った時に全画面のスプライトを使ってスクロールを行いました。


コスチュームにいくつかパターンを持たせて、表示させるときにランダムで選択することで無限に横スクロールが続くように作ってみました。


その時のメモです。



今回は2種類の方法を試しました。


方法1:クローンを作成→削除を繰り返す方法


方法2:3つのクローンを使いまわす方法



最初は方法1で作っていたのですが、別の原因でメモリリークが発生してしまい原因を探っている最中で方法2に切り替えました。


方法1でメモリリークが発生することはないので、こちらの方がシンプルで分かりやすいと思います。


方法2に変えた後、動作が特に変わらないのでそのまま完成させました。




全画面のスプライトを作成する


新規でスプライトを1つ作ります。

描く」で作って名前は「地面」にしました。

座標はX=0Y=0にしておくと分かりやすいです。



コスチュームの作成画面で最初のパターンを作ります。


とりあえず地面を描きます。





ここで、X座標を-600と入力してリターンしてみます。






これ以上左に行けません


スクラッチではスプライトを完全に画面外に出せないようなので、コスチュームを工夫する必要があります。





透明の四角を長めに配置します。

場所は真ん中じゃなくても構いません。



もう一度、X座標を-600と入力してリターンしてみます。






画面外へ消えました。


これから作る全てのスプライトにこの「見えないバー」が存在しています。






とりあえず4パターン作りました。







方法1.コードを組み立てる(クローン作成→削除版)



地面」スプライトのコードを開きます。


作成するのは次の3つの制御になります。



「はたが押されたとき」


「クローンされたとき」


「横スクロール」  ← これは自分で作成しました




それぞれのコード次のようになりました。



「はたが押されたとき」







「クローンされたとき」









「横スクロール」  ← これは自分で作成しました





表示パターンをあらかじめ「次の画面リスト」に登録しておけば、決まった順で出すこともできます。




↓のように動きます。





これだけのプロジェクトを公開してあります。


横スクロール(クローン作成→削除版)







方法2.コードを組み立てる(3つのクローンを使いまわす)


同じ素材を使ってクローンを使いまわす方法のコードを作りました。

注意する点は、オリジナルは使わないのですがメッセージを受け取ってしまうのでオリジナルクローンかを区別できるようにしておくことです。


オリジナルはメッセージを受け取っても何もしないようにしておきます。




作成するのは次の5つの制御になります。




「はたが押されたとき」


「クローンされたとき」


「横スクロール」  ← 自分で作成しました


「再利用して表示」  ← 自分で作成しました


「(再利用する)を受け取ったとき」




それぞれのコード次のようになりました。


「はたが押されたとき」






「クローンされたとき」






「横スクロール」  ← 自分で作成しました







「再利用して表示」  ← 自分で作成しました







「(再利用する)を受け取ったとき」






実行結果は方法1と同じです。



サンプルコードのプロジェクトを公開しています。






他にも色々方法があると思います。

横長の画像を作って、最大限まで拡大して表示してもいいかもしれません。



もっと良い方法が思いついたらどんどん改良していきたいと思います。^^

↓の記事は当たり判定で上手くいかなかったときのメモです。



他の作品記事もよければ読んでみてください。


ラベル

3DCG AdSense AI Amazon Echo Blender Blogger cron Cursor DNS Fire TV GCP Github Copilot Google Cloud HTTP iOS IPA iPad iPhone5 JavaScript laravel mySQL nodejs PhotoShop PHP Python Redis Scratch SSH Unity vue.js Webサーバ Windows10 WinSCP イヤーカフ型 イラスト おかし おやつ オリンピック お文具 カイワレ大根 ガチャ きのこ ギフト キャラ弁 クリスマス クレジットカード ゲーミング ゲーミングキーボード ゲーミングマウス ゲーミングマウスパッド ゲーミングモニター ゲームパッド ゴーヤー栽培 コナン サーバ サイクリング サイバーセキュリティ サイバー攻撃 サブスクリプション しりとり すイエんサー スクラッチ スマートウォッチ スライム セキュリティ ゼロトラスト ダイエット タブレット ドズル社 なわとび バーテープ パズル パンダ ぷよぷよ ふるさと納税 プログラミング プロトコル番号 マイクラ マイクロソフト マリオ マンガ メモ ランニングウォッチ ランニングゲーム ワイヤレスイヤホン 異世界 絵本 株関連 鬼滅の刃 健康診断 工作 磁石 自転車 自動化 収益化 書き初め 小学校 松屋 情報処理 情報処理安全確保支援士 辛辛魚 水泳 生成AI 折り紙 川渡し問題 銭天堂 誕生日 段ボール 知育菓子 中学受験 冬鳥 動画 動画編集 日常 認定試験 粘土 福袋 便利な雑貨 母の日 銘酒 料理

このブログを検索

ブログをよくする

連絡フォーム

名前

メール *

メッセージ *

ブログ アーカイブ

QooQ