オブジェクトを追従するview機能
どんなもの?
GameMakerのview機能にはobject followingという機能があります。
この機能を使うと指定したオブジェクトをviewが追いかけるということが出来ます。
使用例としては、playerを中心に画面がスクロールするなどです。
object followingの設定
①追従するオブジェクトを指定
②viewの水平方向の境界線の幅
③viewの垂直方向の境界線の幅
④viewの水平方向へのスクロール速度(-1の場合は瞬時に移動)
⑤viewの水平方向へのスクロール速度(-1の場合は瞬時に移動)
この機能の動きとしては
指定したオブジェクトが、指定した境界線を超える
↓
viewが指定した速度で追いかける
↓
指定したオブジェクトが、境界線内に入る
↓
viewが止まる
となります。
この機能は使った場合ルーム内でviewは動きます。
ルーム外が映ったりはしません。
次にゲーム画面を例にして解説します。
ゲーム画面を例にしたの解説
①Object following:player
②Hbor:100
③Vbor:100
④Hsp:2
⑤Vsp:2
今回も例としてrStage1を使用します。
ルームサイズは1600×600とします。
※初期状態ではrStage01のルームの縦幅は608ですが、わかりやすくする為に600としました。
viewの座標 X:0,Y:0
viewのサイズ W:800,H:600
※カメラオブジェクトはルームから消しておいてください。
playerがX:400,Y:300にいる時
playerが赤い境界線の内側で動いている間はviewは動きません。
この線を超えて移動した場合、viewも追従して移動します。
この機能ではviewはルーム内のみを映すように動くので
今回のように
ルームの縦幅とviewの縦幅が同じ場合は
上下に動く幅がなく、左右にのみ動きます。
縦に長いルームなどで
ルームの横幅とviewの横幅が同じ場合は
左右に動く幅がなく、上下にのみ動きます。
なので、今回の場合は
黄色の範囲にplayerが入った時
viewは右へHsp:2の速度で追従します。
左や上下の境界線を超えてもviewは動きません。
この状態からplayerがX:1000,Y:520に移動すると
このような状態になり
右に動けば右の黄色の範囲すぐに入り、viewは右へHsp:2の速度で追従し
左に動けば左の黄色の範囲に入ってから、viewは左へHsp:2の速度で追従します。
赤い境界線の下側から外に出ていますが
先ほど解説した通り、ルームの縦幅とviewの縦幅が同じなのでviewは上下には動きません。
このように、object followingとは設定したオブジェクトが領域を超えたらviewを調整するものです。
次にplayerと一緒にスクロールする使用例を解説します。