viewを強制スクロールさせる方法
はじめに
強制スクロールさせる方法はいくつかありますが
今回はobject followingを利用した強制スクロールを解説します。
こちらを閲覧する前に、playerを中心に画面がスクロールする方法をご覧ください。
object followingを利用した強制スクロール
playerを中心に画面がスクロールする方法ではplayerを追従させましたが
ここではplayer以外のオブジェクトを追従させることによってviewを強制スクロールさせます。
今回は
playerがトリガーになるオブジェクトを触ると、左から右へ強制スクロールが始まるという形にします。
必要なオブジェクトの作成
先に強制スクロール用中心オブジェクトを作成します。
このオブジェクトをobject followingによって追従させます。
ここでは仮にforceScrollとします。
forceScrollの設定
createイベント
outside roomイベント
次にトリガーとなるオブジェクトを作成します。
ここでは仮にtriggerとします。
triggerの設定
collisionイベント(playerオブジェクト)
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としました。
このルームの全体図はこのようになっています。
まずtriggerオブジェクトを設置します。
このtriggerオブジェクトにplayerが接触すると
triggerオブジェクトが削除され
forceScrollオブジェクトが生成され、hspeed=2の速度で動き出します。
そのまま右へ動き続け
右まで行くと、viewは停止します。
viewがルームを超えていかず、ここで止まるのは
object followingの仕様でviewをルーム外まで移動させない為です。
forceScrollオブジェクトは画面外まで移動して、削除されます。
他の方向の強制スクロールの場合
上記と同じ設定をしたうえで
forceScrollオブジェクトのhspeed=2;を
右から左の場合は、hspeed=-2;
上から下の場合は、vspeed=2;
下から上の場合は、vspeed=-2;
に変更します。