- 【初心者】ステフと一緒にゲーム製作part10【歓迎】
371 :ステフ96 ◆UUwiUCL1P6 [sage]:2011/01/15(土) 10:19:42 ID:IeU7tK/g - >>370
369の書き方が助言に対して反論風になってしまってすいません。 368のように具体的なポイントや事例で指摘されれば、 自分でどのように取捨選択するか咀嚼できるので助かりました。 現状、自分なりにメリット/デメリットを勘案して、今のやり方で進んでいるという状況です。 主旨としては363で糞と指摘されている部分が、 自分がすでに割り切ったデメリットなのか、 それとも自分ではまだ気づけていない問題点なのか、 もしくは自分では思いつかない視点の方法があるのか、 を知りたいと思っての質問でした。
| - ゲームエンジン製作スレ
642 :名前は開発中のものです。[sage]:2011/01/15(土) 12:01:28 ID:IeU7tK/g - >>621
(続き) HMODULE module = LoadLibrary( "test.dll" ); SCRIPT_DATA* pc = reinterpret_cast< SCRIPT_DATA* >( GetProcAddress( module, MAKEINTERSOURCE( 1 ) ) ); pc->opecodeが実行する命令、pc->operandは命令が処理するデータ。 pc->opecodeの命令の種類で、pcをどれだけ進めるか決める。 DLLに変換する過程を経るなら、C++の文法はあらかた織り込めると思いますが、 生のスクリプトデータをエンジンが直接に解釈して実行するのは、 エンジンにCコンパイラに匹敵する機能を実装させるのと同じかと思います。
| - ゲームエンジン製作スレ
644 :名前は開発中のものです。[sage]:2011/01/15(土) 13:26:33 ID:IeU7tK/g - >>642
(続き) MyCharacterクラスをスクリプト独自に定義してそのメンバー関数をエンジンに実行させる。 移動(NPC) ↓ test.cpp { OP_EXPORT, ( void* )2, }, MyCharacter NPC; void functionxxxx( void ){ NPC.move(); } ↓ test.def EXPORT functionxxxx @2 NONAME ↓ engine.cpp switch( pc->opecode ) { case OP_EXPORT: reinterpret_cast< void (*) ( void* ) >( GetProcAddress( module, MAKEINTERSOURCE( reinterpret_cast< int >( pc->operand ) ) )(); break; }
|
|