プレイヤー接触のイベントを決定キーで起動させる

2022/04/28

ウディタ ゲーム制作

  今作っているゲームでは、調査したい場所に行くと主人公の頭上にアイコンが表示されるようにしています。

 そのアイコンが表示されるのをマップEvにアイコン表示用のコモンを入れて、マップEvの起動条件をプレイヤー接触にしていました。

 しかし…プレイヤー接触にした結果「調べる」ということが難しくなってしまいました😅

 決定キーで調べるようにしたかったのですが、起動条件がプレイヤー接触のため「プレイヤーが動いている時に起動」してしまいます。メッセージを表示しようとしたとき、主人公が動くたびにメッセージが表示されてしまう…と言った感じになります。

 これをコモンEvを新しく作り、プレイヤー接触のマップEvを決定キーを押してメッセージ表示させたり出来るようにしていきます。

 また、今回のコモン処理内容において【頭上にアイコンを表示する処理を1つのコモンイベントにまとめることが出来た】で紹介したコモンEvがあることが前提として作成していっています。

起動条件がプレイヤー接触のマップイベントを決定キーで起動させる

起動させるための下準備用コモンEv

 まずは起動させるためフラグを作ります。フラグは共通して使いたいので、通常変数・予備変数を用いてフラグ用変数を用意します。

 自分は通常変数V2[実行処理初期化]・V1[起動]の2つを用意しています。

 実行処理初期化の変数は一回起きたEvを連続して起こさないようにするために入れています。もしかすると、なくてもいいかもしれません。

 また、マップEv側ではページ1にプレイヤー接触のアイコン表示、ページ2に決定キーで起動の起こしたいEv内容を入れます。そして、マップEvのページ切り替えをV1[起動]で行うよう設定しておきます。

コモンプレイヤー接触のマップイベントを決定キーで決定キーで起動させる下準備
プレイヤー接触のマップEvを決定キーで決定キーで起動させる下準備

 画像では コモンEv217セルフ1 となっている部分は実は…

 変数操作: CSelf20[調査ポイントマップID] = コモンEv218セルフ1[マップID] + 0 

 となっています。

 コモンEvの場所変えたらズレてしまいました。やっていることは別のコモンから情報を読み取っているだけで同じなので…ユルシテ…ユルシテ…

 変数呼出し値の 15000000+100*Y+X = コモンEv Y のコモンセルフ変数X を使って別のコモンEvから情報を取得してます。

 ココから情報を取得している取得元のコモンEvは【頭上にアイコンを表示する処理】で取得している「マップID」です。このマップIDはイベント挿入の際に手動で入力する面倒くさい仕様になっているので、わざわざこのようにしています。

 正直、並列常時とかで自動で取得できるようにできるのであれば、それが一番いい方法だと思います。

 その後…キー入力操作で決定キーを受け付けるようにして条件分岐します。

 |■変数操作: CSelf12[吹き出し有無] = コモンEv218セルフ0[吹き出し種類] + 0 
 ↑マップID同様【頭上にアイコン】からCself変数から情報を取得しています。

 その分岐の中で「主人公の頭上にアイコンが表示されているとき」かつ「主人公の一歩先に(目の前に)マップEvが存在するとき」に決定キーが入力されると起動フラグが立つようにします。

主人公の一歩先にマップEvがあるかどうかを調べるのは、また別にコモンEvを作っておりコチラで紹介しています↓

 一歩先にEvが存在するときに通常変数 V3[前にEvあり] が =1 になっているので…吹き出しが表示される中に V3[前にEvあり]が=1 のとき V1[起動]=1 にします。

 マップEvのページ切り替えをV1[起動]で行うよう設定しておいて、決定キーで起動(起こしたいEv処理を入れたページ)に切り替えます。

▼ 最初に[起動]が=1なのを回避用  初期化
■条件分岐(変数):  【1】 CSelf11[初期化]  が   0 と同じ 
-◇分岐: 【1】  [ CSelf11[初期化]  が  0 と同じ  ]の場合↓
 |■変数操作: V1[起動] = 0 + 0 
 |■変数操作: CSelf10[キー受付] = 0 + 0 
 |■変数操作: CSelf11[初期化] = 1 + 0 
 |■
◇分岐終了◇

 上記の初期化処理を最後に入れておかないと、ゲーム起動直後は何故か起動のフラグが=1になっているのでスムーズに機能してくれません。

プレイヤー接触のマップイベントを起動実行させる

 新しくコモンEvを作ります。このコモンEvで起動実行を行います。

コモンプレイヤー接触のマップイベントを決定キーで実行
コモンプレイヤー接触のマップイベントを決定キーで実行させる

 起動ページの条件分岐は無くても正常に機能しました…必要ないです😂

 このコモンEvで大切なポイントはココからで…

 キー入力受付で決定キーが押されたときに長押しに反応しないように処理を加えています。(ループの処理の箇所)

 その後、V2[実行処理初期化]=0のときキー入力操作で自動キー入力を行い「決定キー」を自動で入力させます。決定キーを自動で入力させることで、1回決定キーを押したら2回押したことになるようにします。

 これでプレイヤー接触のマップEvを無理くり決定キーで実行させることが出来ます。

 一応はV1[起動]の変数によって既にページが切り替えられているので、決定キーをマップEvに対して2回押せば切り替わったページ内の処理を実行できます。しかし、それではゲームのテンポも悪くなるので1回で調べられるようにするためにこのコモンEvを作っています。

 かなり強引な力業のやり方ではありますが…何か参考になるところがあれば嬉しいです。

最後まで読んでいただき、ありがとうございます

profile


MNEET
ゲーム制作を亀並みですがやってます
MNEET(@ごみ)の自創作置き場です
ゲーム制作以外にも自創作関係を投稿していこうと思っています
幅広に創作活動をしていきたい気持ち
よろしくお願いします👐

ゲーム制作や創作以外。日常系という名の自我👇
生活LOG+

MNEETのTwitter👇
垢名【ごみ】  Twitter

作ったゲーム

初完走!第一作目 徘徊者の館
第二作目 ぼく

カテゴリー

このブログを検索

QooQ