アイワナ製作

viewを強制スクロールさせる方法

はじめに

強制スクロールさせる方法はいくつかありますが
今回はobject followingを利用した強制スクロールを解説します。
こちらを閲覧する前に、playerを中心に画面がスクロールする方法をご覧ください。

object followingを利用した強制スクロール

playerを中心に画面がスクロールする方法ではplayerを追従させましたが
ここではplayer以外のオブジェクトを追従させることによってviewを強制スクロールさせます。

今回は
playerがトリガーになるオブジェクトを触ると、左から右へ強制スクロールが始まるという形にします。

必要なオブジェクトの作成

先に強制スクロール用中心オブジェクトを作成します。
このオブジェクトをobject followingによって追従させます。
ここでは仮にforceScrollとします。
forceScrollの設定
createイベント

hspeed=2;//右に2の速度で移動

outside roomイベント

instance_destroy();//ルーム外に行くとこのオブジェクトを削除

次にトリガーとなるオブジェクトを作成します。
ここでは仮にtriggerとします。
triggerの設定
collisionイベントplayerオブジェクト

instance_create(view_xview+(view_wview/2),view_yview+(view_hview/2),forceScroll);
instance_destroy();
//↑viewの中心に強制スクロール用オブジェクトを生成
//↑生成後、このオブジェクトを削除

object followingの設定

Object following:forceScroll
Hbor:400(viewの横幅の半分)
Vbor:300(viewの縦幅の半分)
Hsp:-1(-1の場合は瞬時に移動)
Vsp:-1(-1の場合は瞬時に移動)

上記の設定は、viewのサイズが800×600の場合の設定です。
※カメラオブジェクトはルームから消しておいてください。

ゲーム画面を例にした使用例

今回はrStage02を利用します。
rStage02のルームサイズは1600×600です。
※初期状態ではrStage02のルームの縦幅は608ですが、わかりやすくする為に600としました。
このルームの全体図はこのようになっています。 rStage02全体図

まずtriggerオブジェクトを設置します。 trigger設置図

このtriggerオブジェクトplayerが接触すると
triggerオブジェクトが削除され
forceScrollオブジェクトが生成され、hspeed=2の速度で動き出します。 forceScrollが生成される図

そのまま右へ動き続け forceScrollが移動していく図

右まで行くと、viewは停止します。 forceScrollが移動していく図
viewがルームを超えていかず、ここで止まるのは
object followingの仕様でviewをルーム外まで移動させない為です。
forceScrollオブジェクトは画面外まで移動して、削除されます。

他の方向の強制スクロールの場合

上記と同じ設定をしたうえで
forceScrollオブジェクトhspeed=2;
右から左の場合は、hspeed=-2;
上から下の場合は、vspeed=2;
下から上の場合は、vspeed=-2;
に変更します。

PAGE TOP

    inserted by FC2 system