アイワナ製作

オブジェクトを追従するview機能

どんなもの?

GameMakerのview機能にはobject followingという機能があります。
この機能を使うと指定したオブジェクトをviewが追いかけるということが出来ます。
使用例としては、playerを中心に画面がスクロールするなどです。

object followingの設定

Viewsタブ図 追従するオブジェクトを指定
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
※カメラオブジェクトはルームから消しておいてください。
ルーム全体図

playerX:400,Y:300にいる時
playerがX:400,Y300にいた場合の図
player赤い境界線の内側で動いている間はviewは動きません。
この線を超えて移動した場合、viewも追従して移動します。

この機能ではviewはルーム内のみを映すように動くので
今回のように
ルームの縦幅とviewの縦幅が同じ場合
上下に動く幅がなく、左右にのみ動きます。
縦に長いルームなどで
ルームの横幅とviewの横幅が同じ場合
左右に動く幅がなく、上下にのみ動きます。
なので、今回の場合は
viewが動く範囲の図
黄色の範囲playerが入った時
viewは右へHsp:2の速度で追従します。
左や上下の境界線を超えてもviewは動きません。

この状態からplayerX:1000,Y:520に移動すると playerがX:1000,Y520にいた場合の図
このような状態になり
右に動けば右の黄色の範囲すぐに入り、viewは右へHsp:2の速度で追従し
左に動けば左の黄色の範囲に入ってから、viewは左へHsp:2の速度で追従します。

赤い境界線の下側から外に出ていますが
先ほど解説した通り、ルームの縦幅とviewの縦幅が同じなのでviewは上下には動きません。

このように、object followingとは設定したオブジェクトが領域を超えたらviewを調整するものです。
次にplayerと一緒にスクロールする使用例を解説します。

PAGE TOP

    inserted by FC2 system