1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

プレイヤーが一定範囲の外に動くと発生するイベント

Ho9tocraft2019-02-13に開始した「ゲーム制作」の中の討論

    タグ:
  1. Ho9tocraft

    Ho9tocraft ユーザー

    名前の通りのイベントです。
    (例)現在位置から6歩外側に動いたらその地点で戦闘発生(強制エンカウントなのでランダムエンカウントではない)
     
    #1
  2. 神無月サスケ

    神無月サスケ ユーザー

    コモンイベントふたつで実現できます。 capture138.png
    これが範囲内にいるかを監視し続けるコモンイベントです。
    特定のスイッチ(ここでは3番)がONの間だけ、
    (5,5)-(10,10)にいるかを判定します。
    そこからはずれたら、イベント起動用スイッチ(ここでは4番)が起動します。


    capture139.png
    これが、イベント起動の例です。イベント起動用スイッチ(ここでは4番)が
    自動実行の起動条件になっています。

    この内容は、一定の距離から離れた時に、強制的に主人公を(8,6)に戻すというものです。
    最後に、行動制限を続けたい場合は、再び並列コモンイベントの起動スイッチ(4番)をONにします。

    以上のやり方でいかがでしょう。
    健闘を祈ります。
     
    #2
    ナマグサ がいいね!しました
  3. Ho9tocraft

    Ho9tocraft ユーザー

    表現がまずかっただけかもしれませんが、
    □□□□□イ□□□□□
    □□□□イ■イ□□□□
    □□□イ■■■イ□□□
    □□イ■■■■■イ□□
    □イ■■■■■■■イ□
    イ■■■■プ■■■■イ
    □イ■■■■■■■イ□
    □□イ■■■■■イ□□
    □□□イ■■■イ□□□
    □□□□イ■イ□□□□
    □□□□□イ□□□□□
    プのところにプレイヤーがいて(原点とする)、その原点から(この表では)4マス分(■)は何も起きず、イに踏み込んだ瞬間に発生させるイベントにしたいです。
    その場合はどうなるでしょうか
     
    #3
  4. 神無月サスケ

    神無月サスケ ユーザー

    これはリージョンを使うといいんじゃないでしょうか。
    上記のプログラムの応用になります。

    イベント発生個所すべてを特定のリージョン番号にして、
    並列処理で、毎フレーム、プレイヤーの位置(x, y)の現リージョン番号を
    イベントコマンド「指定位置の情報取得」で変数に取得する。
    変数で、その値が、リージョン番号と一緒なら、イベント起動、
    という風にすればいいんじゃないでしょうか。

    以上、ご検討を祈ります。
    よく分からない場合、上記のようにイベントサンプル書かせていただきます。
     
    最後に編集: 2019-02-15
    #4
    ナマグサ がいいね!しました
  5. Ho9tocraft

    Ho9tocraft ユーザー

    「プレイヤーのマップX」などはスクリプトに記入すればいいんでしょうか
     
    #5
    ナマグサ がいいね!しました
  6. 神無月サスケ

    神無月サスケ ユーザー

    上記のスクリーンショットにあるように、変数で取得が可能ですよ。
    スクリプトは一切必要ありませんので、少し挑戦してみてください。
     
    #6
    ナマグサ がいいね!しました
  7. Ho9tocraft

    Ho9tocraft ユーザー

    変数の代入時に「スクリプト」と呼ばれる項目があるじゃないですか。そこに記入するのか、っていうことです
     
    #7
  8. 神無月サスケ

    神無月サスケ ユーザー

    ああ、すいません。説明不足で。大変失礼いたしました!
    「オペランド」は「スクリプト」ではなく、「ゲームデータ」です。
    以下のように選択すると、「プレイヤーのマップX」などが取得できます。
    capture140.png
    なお、今回のケースでは、プレイヤーの現在位置のリージョンIDの取得方法も、
    必要なようですね。それの取得方法もご説明しておきます。
    イベントコマンド「指定位置の情報取得」(3ページ目の右上の方にあります)で可能です。
    capture141.png
    どうでしょう。これが取得出来れば、「リージョンIDを見て、イベントを起動」という
    コモンイベントが作れるんじゃないでしょうか。
    ご健闘を祈ります。
    まだ、分からない場合、改めてご相談に乗ります。
     
    #8

このページを共有