現在、C ++を使用してRPGゲームを開発しており、マップにイベントを含めることができるようになりました。
マップ上のイベントでプレイヤーを癒してもらいたかったのです。これを行う最も簡単な方法は、「this」キーワードを使用してゲームからイベントオブジェクトへのポインターを渡すことであると考えました。私がこれを始めたとき、現在他のクラスを含めようとしていたクラスを含めようとした結果として生じたと思われるコンパイラエラーがたくさんありました。(私が推測する無限のループ?)
例えば。「game」クラスがあり、「mapManager」クラスに属するパブリックメンバーがあります。'mapManager'オブジェクトには、'event'オブジェクトがメンバーとして含まれます。'game'オブジェクトには、'メンバー内に'player'オブジェクトもあります。'player'が持っている'event'オブジェクト変数を変更する必要があります。必要なときにいつでも正直にポインタを投げることができましたが、これは面倒になる可能性があります。
私が尋ねようとしているのは、親の子にその親の別の子にアクセスさせる簡単な方法があるかどうか、または他の子を指す必要があるすべての子クラスへのポインターをスローする方が簡単かどうかです。 。
うわー...それはほとんど意味がありませんでしたが、うまくいけば、誰かが私に良い答えを与えるのに十分理解できるでしょう。それが役立つ場合に備えて、いくつかのコードがあります。
:game.h
include "player.h"
include "event.h"
class game
{
public:
player Player;
event Event;
};
:player.h
class player
{
public:
game* Game;
};
:event.h
class event
{
public:
game* Game;
};
これだけで「ゲームはタイプに名前を付けない」という結果になるので、event.hとplayer.hにゲームを含めようとしましたが、同じエラーが発生しました。私がやりたいのは、イベント内からプレイヤーの可変HPにアクセスできるようにすることです。