【解決済】変数で行うHPについて/針トラップについて

n_libera
記事: 18
登録日時: 2019年3月12日(火) 11:37

【解決済】変数で行うHPについて/針トラップについて

投稿記事by n_libera » 2019年4月16日(火) 16:42

こんにちは、ツクールmvの初心者です。
現在ゲームを製作中なのですが、2点困ったことがありましてアドバイスを頂けると嬉しいです。

<変数で行うHPについて>
ゲーム内で、HPの設定を変数と分岐条件で設定しています。(参考画像:1枚目、2枚目)
分岐条件で、HP3の時に敵に接触するとHP2へ、HP2の時に敵に接触するとHP1へ、
HP1の時に敵に接触するとHP0になり死亡。といった具合です。
ですが、実際に敵に接触すると、HP3から一気にHP0になってしまうことが多々あります。
(接触した数秒の間にHP3→HP2→HP1→HP0になっていってしまうんだと思っています)
現在は、HPが減るコモンイベントの下に、接触したら敵が一時停止(+すり抜け可)のコモンイベントを追加して問題は解決しているのですが(参考画像:3枚目)、それ以外に解決する方法はないでしょうか?
別の方法を探しているのは、2点目の質問にかかってきます。

<針トラップについて>
ゲーム内で、針トラップを作成しようと考えています。
一定時間で地面から針が出てくるので、それに当たらないように気をつけて進む……という感じを狙っています。
ツイッターでお見かけした、シロップ様(https://twitter.com/thiropGames/status/1117004715504455680)
のやり方で針トラップを、そっくりそのまま作成してみたところ、イベントが動きませんでした。
スプリクトのやり方等が悪かったのでしょうか……?(参考画像:4枚目)
>自律移動にあるスクリプト
1)this._trigger=-1
2)this._trigger=2; if($gamePlayer.pos(this.x,this.y))this.start();
3)this._trigger=-1

また<変数で行うHPについて>についてかかってくるのですが、
針に当たった際に、上記のHP-1コモンイベントを発動させると条件分岐を使っているためか、HP3でも一気にHP0になってしまいます。

変数で行うHPについて、針トラップについて、片方だけでも良いので、
アドバイス・または解決してくださるとありがたいです!
それでは用件のみとなりますが、失礼いたします。

追記:無事に解決いたしました!本当にありがとう御座います。
添付ファイル
スクリーンショット 2019-04-16 午後4.36.20.png
スクリーンショット 2019-04-16 午後4.31.22.png
スクリーンショット 2019-04-16 午後4.26.37.png
スクリーンショット 2019-04-16 午後4.31.17.png
最後に編集したユーザー n_libera on 2019年4月18日(木) 09:25 [ 編集 1 回目 ]

アバター
にいやん
記事: 208
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡を取る:

Re: 変数で行うHPについて/針トラップについて

投稿記事by にいやん » 2019年4月16日(火) 18:22

ダメージを受けたときに連続でダメージが入らないようにHPの減算処理の後にウェイト処理を挟むのはどうですか?見たところHPへの代入処理をしているのですが減算処理の方がスマートな条件分岐になると思います。
アバター
にいやん
記事: 208
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡を取る:

Re: 変数で行うHPについて/針トラップについて

投稿記事by にいやん » 2019年4月16日(火) 20:03

すみません、これはそもそも変数使わなくてよかったですね(ノ≧ڡ≦)テヘペロ
一応説明しますと針の方向で条件分岐を作っています。

this.character(0).direction() == 8 ←これがイベントが上向きの条件分岐

針が完全に出ているときは上を向いているときの条件分岐なので、それと同時にキャラクターと針が重なっているときにtrueを返すようにしています。プレイヤーにダメージが入ると無敵スイッチがONになって連続でプレイヤーにはダメージが入らないようになっています。$gameSwitches.value(200) ? $gameSwitches.setValue(200, false) : null; を使って針が完全に下がったときに無敵スイッチをOFFにしています。無敵スイッチがONになっていないときはスイッチの操作自体が発生しません。

敵に接触したときの条件分岐ですがこの針のダメージ処理の原理が分かれば簡単にできると思います。ここはご自分でやってみて下さい。もし処理が上手くいかず、つまずいてしまった場合は気軽に聞いて下さい。

コード: 全て選択

this.character(0).direction() == 8 && (this.character(0).x) >= this.character(-1).x && (this.character(0).y) >= this.character(-1).y && (this.character(0).x) <= this.character(-1).x && (this.character(0).y) <= this.character(-1).y

以下のようにやってみて下さい。画像の見切れている条件分岐には↑のコードを代入。
b.jpg

コード: 全て選択

$gameSwitches.value(200) ? $gameSwitches.setValue(200, false) : null;

画像の一番下のスクリプトには↑のコードを代入。
a.jpg
a.jpg (201.17 KiB) 閲覧数: 437 回
n_libera
記事: 18
登録日時: 2019年3月12日(火) 11:37

Re: 変数で行うHPについて/針トラップについて

投稿記事by n_libera » 2019年4月16日(火) 22:59

にいやんさん

お早い返信・アドバイスをありがとう御座います!困っていたので、とても助かりました……
しかも、画像を使っての丁寧なアドバイス…本当に嬉しいです!

早速試した所、思ったように動き感動いたしましたっ
自分1人じゃ絶対に解決出来ないものでしたので、嬉しいです!

また、1つ追加での質問宜しいでしょうか…|v・*)?
一度無敵スイッチをONになったあと、何度針に当たってもダメージが当たらないままなので、
どのようにイベントを組めば(どのタイミングで無敵スイッチをOFFにすれば)、
スムーズにゲームを再開することができるでしょうか?
(イメージとしては、マップ全体的にこの針を配置して、ゴールまで頑張るというイメージです…!

それでは要件のみとなってしまいますが、お返事いただけたら嬉しいです!
宜しくお願いします……!
アバター
にいやん
記事: 208
登録日時: 2016年7月02日(土) 00:38
お住まい: 地獄4丁目西のゴミ置き場
連絡を取る:

Re: 変数で行うHPについて/針トラップについて

投稿記事by にいやん » 2019年4月16日(火) 23:19

無敵スイッチをOFFにするタイミングは針が見えなくなったときで、移動ルートの命令の一番下にある
$gameSwitches.value(200) ? $gameSwitches.setValue(200, false) : null;
というスクリプトです。

針の動作は繰り返しなので毎回無敵スイッチがONになっているかどうかの判定が入ります。ONであればOFFになり、OFFならば判定は入りません。なので次に針が出たときには無敵スイッチはOFFになっているはずなのですが…
OFFにするスイッチ番号はあっていますか?
n_libera
記事: 18
登録日時: 2019年3月12日(火) 11:37

Re: 変数で行うHPについて/針トラップについて

投稿記事by n_libera » 2019年4月16日(火) 23:40

にいやんさん

返信ありがとう御座います!
スイッチの番号を合わせることをすっかり忘れておりました…!
番号を合わせた所、しっかり作動することができました。
本当にありがとう御座います……!

この仕組みを応用して、敵に接触された際も使って見ようと思います!

“MV:質問” へ戻る