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

返信する
ふじうさ
記事: 68
登録日時: 2023年9月23日(土) 16:27

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

投稿記事 by ふじうさ »

こんばんは、ふじうさです。
表題のとおりなのですが、スーパーマリオに出てくる、テレサのような挙動のイベントを作ることはできますでしょうか。

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

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

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

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

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

良い知恵がございましたら、ご教示お願いいたします。
最後に編集したユーザー ふじうさ [ 2025年10月24日(金) 00:04 ], 累計 1 回
ゆわか
記事: 448
登録日時: 2015年11月10日(火) 20:08
連絡する:

Re: テレサを作りたい!

投稿記事 by ゆわか »

例の内容だと、スイッチがONの時に、敵の移動が停止しないとおかしい気がします。
スイッチONの時に追っかけてくるなら・・・

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

かな、と思います。

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

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

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

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

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

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

頑張ってねー。
ふじうさ
記事: 68
登録日時: 2023年9月23日(土) 16:27

Re: テレサを作りたい!

投稿記事 by ふじうさ »

ゆわかさま

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

“MZ:質問”に戻る