私は単純なコンポーネントベースのc++およびluaゲームエンジンに取り組んできました。現在、オーディオや物理学などのすべてのサブシステムは、を使用して独自のモジュールを使用してluaから呼び出すことができますluaL_newlib
。
私が抱えている問題は、luaスクリプトが関数を呼び出してエンティティを変更する方法です。LikeSetPosition()
は、静的関数ではなく、エンティティのインスタンスで呼び出す必要があることは明らかです。それで、これらのインスタンス化された関数を持つことができる方法があります。
私が持っていたアイデアの1つは、各エンティティが固有のモジュール名で関数を登録することでした。したがって、とのようにentity1.Setposition
なりentity2.Setposition
ます。このような機能を効果的に複製して登録することは可能でしょうか?
または、このようなインスタンス化された関数を使用して、コンポーネントがその一部であるエンティティを変更できるようにする別の方法はありますか?
私が自分自身をひどく説明した場合は、私が喜んでより多くの情報を提供するように言ってください