こんばんは、ふじうさです。
表題のとおりなのですが、スーパーマリオに出てくる、テレサのような挙動のイベントを作ることはできますでしょうか。
【テレサとは】
恥ずかしがりやのお化けです。
マリオと向き合ってると、恥ずかしがって追っかけてこない(動きが止まる)のですが、ひとたびマリオが背中を向けると、どこまででも追ってきます。
「条件分岐」のコマンドを用いて、向きで場合分けしようと思ったのですが、プレイヤーの向きでしか場合分けできないですよね。イベントの向きで条件分岐できれば、なんとか実現できると思うのですが…。
例えば…
プレイヤーが上を向いていて…
・イベントも上を向いている→スイッチOFF
・イベントが右を向いている→スイッチOFF
・イベントが左を向いている→スイッチOFF
・イベントが下を向いている→スイッチON
プレイヤーが右、左、下を向いている場合も作成する。
で、スイッチONの時に追っかけてくる。
こんな感じでしょうか。
あ、でもこれだと、プレイヤーとイベントが背中合わせの時も追っかけてきますね…。
良い知恵がございましたら、ご教示お願いいたします。
【解決済】テレサを作りたい!
【解決済】テレサを作りたい!
最後に編集したユーザー ふじうさ [ 2025年10月24日(金) 00:04 ], 累計 1 回
Re: テレサを作りたい!
例の内容だと、スイッチがONの時に、敵の移動が停止しないとおかしい気がします。
スイッチONの時に追っかけてくるなら・・・
プレイヤーが上を向いていて…
・イベントが下を向いている→スイッチOFF
・それ以外の時は→スイッチON
かな、と思います。
で、まあ向き合ってる時だけ停止するならば
それ以外の時は、位置は関係ないので、敵を停止させる条件に
プレイヤーと敵イベントの座標を取得して比較する
という条件を挟むといいんじゃないでしょうか。
例えば、スイッチONの時に追っかけてくるなら・・・
プレイヤーが上を向いていて…
・イベントが下を向いている→プレイヤーと敵のY座標を取得する
・プレイヤーの座標の方が大きい時→スイッチOFF
・それ以外の時は→スイッチON
ていう感じでしょうか。
主人公が左を向いていて、敵が右を向いている時は
X座標を取得して比べます。
ただ、縦だけ、横だけを調べるだけだと、どんなに遠くにいても止まってしまいますので
プレイヤーが視認できる範囲に絞るとなると、Y座標もX座標も調べてあれやこれやすることになりますね。
(内容が複雑になるので、そこまで綿密に指定したいという場合のみ説明します)
余談ですが、プレイヤーやイベントの向きの取得方法は
条件分岐で向きを指定する方法と
変数の操作でゲームデータのキャラクターの向きを取得する方法の2つあります。
(変数には数値で取得されます。テンキーの矢印マークに沿った番号です)
状況に応じて使い分けると良いです。
頑張ってねー。
スイッチONの時に追っかけてくるなら・・・
プレイヤーが上を向いていて…
・イベントが下を向いている→スイッチOFF
・それ以外の時は→スイッチON
かな、と思います。
で、まあ向き合ってる時だけ停止するならば
それ以外の時は、位置は関係ないので、敵を停止させる条件に
プレイヤーと敵イベントの座標を取得して比較する
という条件を挟むといいんじゃないでしょうか。
例えば、スイッチONの時に追っかけてくるなら・・・
プレイヤーが上を向いていて…
・イベントが下を向いている→プレイヤーと敵のY座標を取得する
・プレイヤーの座標の方が大きい時→スイッチOFF
・それ以外の時は→スイッチON
ていう感じでしょうか。
主人公が左を向いていて、敵が右を向いている時は
X座標を取得して比べます。
ただ、縦だけ、横だけを調べるだけだと、どんなに遠くにいても止まってしまいますので
プレイヤーが視認できる範囲に絞るとなると、Y座標もX座標も調べてあれやこれやすることになりますね。
(内容が複雑になるので、そこまで綿密に指定したいという場合のみ説明します)
余談ですが、プレイヤーやイベントの向きの取得方法は
条件分岐で向きを指定する方法と
変数の操作でゲームデータのキャラクターの向きを取得する方法の2つあります。
(変数には数値で取得されます。テンキーの矢印マークに沿った番号です)
状況に応じて使い分けると良いです。
頑張ってねー。
Re: テレサを作りたい!
ゆわかさま
ありがとうございます。
試してはいますが…けっこう難しいですね。
ただ、やり方はわかったので、もうちょいがんばってみます!
ありがとうございました!!
ありがとうございます。
試してはいますが…けっこう難しいですね。
ただ、やり方はわかったので、もうちょいがんばってみます!
ありがとうございました!!