ページ 11

【解決済】テレサを作りたい!

Posted: 2025年10月23日(木) 18:56
by ふじうさ
こんばんは、ふじうさです。
表題のとおりなのですが、スーパーマリオに出てくる、テレサのような挙動のイベントを作ることはできますでしょうか。

【テレサとは】
恥ずかしがりやのお化けです。
マリオと向き合ってると、恥ずかしがって追っかけてこない(動きが止まる)のですが、ひとたびマリオが背中を向けると、どこまででも追ってきます。

「条件分岐」のコマンドを用いて、向きで場合分けしようと思ったのですが、プレイヤーの向きでしか場合分けできないですよね。イベントの向きで条件分岐できれば、なんとか実現できると思うのですが…。

例えば…
プレイヤーが上を向いていて…
・イベントも上を向いている→スイッチOFF
・イベントが右を向いている→スイッチOFF
・イベントが左を向いている→スイッチOFF
・イベントが下を向いている→スイッチON

プレイヤーが右、左、下を向いている場合も作成する。
で、スイッチONの時に追っかけてくる。

こんな感じでしょうか。
あ、でもこれだと、プレイヤーとイベントが背中合わせの時も追っかけてきますね…。

良い知恵がございましたら、ご教示お願いいたします。

Re: テレサを作りたい!

Posted: 2025年10月23日(木) 19:59
by ゆわか
例の内容だと、スイッチがONの時に、敵の移動が停止しないとおかしい気がします。
スイッチONの時に追っかけてくるなら・・・

プレイヤーが上を向いていて…
 ・イベントが下を向いている→スイッチOFF
 ・それ以外の時は→スイッチON

かな、と思います。

で、まあ向き合ってる時だけ停止するならば
それ以外の時は、位置は関係ないので、敵を停止させる条件に
プレイヤーと敵イベントの座標を取得して比較する
という条件を挟むといいんじゃないでしょうか。

例えば、スイッチONの時に追っかけてくるなら・・・

プレイヤーが上を向いていて…
 ・イベントが下を向いている→プレイヤーと敵のY座標を取得する
    ・プレイヤーの座標の方が大きい時→スイッチOFF
 ・それ以外の時は→スイッチON

ていう感じでしょうか。
主人公が左を向いていて、敵が右を向いている時は
X座標を取得して比べます。

ただ、縦だけ、横だけを調べるだけだと、どんなに遠くにいても止まってしまいますので
プレイヤーが視認できる範囲に絞るとなると、Y座標もX座標も調べてあれやこれやすることになりますね。
(内容が複雑になるので、そこまで綿密に指定したいという場合のみ説明します)

余談ですが、プレイヤーやイベントの向きの取得方法は
条件分岐で向きを指定する方法と
変数の操作でゲームデータのキャラクターの向きを取得する方法の2つあります。
(変数には数値で取得されます。テンキーの矢印マークに沿った番号です)
状況に応じて使い分けると良いです。

頑張ってねー。

Re: テレサを作りたい!

Posted: 2025年10月24日(金) 00:04
by ふじうさ
ゆわかさま

ありがとうございます。
試してはいますが…けっこう難しいですね。
ただ、やり方はわかったので、もうちょいがんばってみます!
ありがとうございました!!