1

私は現在、人々が学ぶためのC言語のオープンソースゲームエンジンに取り組んでおり、マウスクリック、キープレスなどを介してUIシステムへの入力を行う最良の方法は何だろうと思っていました.

現在、関数ポインターを使用して、ユーザーが関数を設定する場所に ui システムの入力があります。

button1.mousepress = button1_press;

ユーザーがボタン1をクリックすると、ループしてボタン1を見つけ、ボタン1のクリックイベントを実行します。ただし、コントロール内のイベントに移動してから、ユーザー コントロールに移動する必要があります。関数ポインターをセットアップする方法は次のとおりです。

struct widget
{
//contains control special data
void *control;

//contains the parent of the widget.
widget *parent;

//contains events for quick calling
void(*draw)(widget *);
void(*mousepress)(widget *,int,int);
void(*mouserelease)(widget *,int,int);
void(*mousewheel)(widget *,int);
void(*keypressed)(widget *,int,int);

//hidden and shown arrays
widget_array shown;
widget_array hidden;

vector2ui pos;
vector2ui actualpos;
vector2ui originalpos;
vector2i imgpos;
image img;
uint16 width;
uint16 height;
uint8 type;
sbool action;
};

ご覧のとおり、関数ポインターは現時点では汎用的ではないため、汎用にする必要がある場合はそうします。それ以外は、関数ポインターを設定してGUIコントロールイベントに移動できるようにする最良の方法は何ですか?次に、ユーザーが作成した button1.mousepressに移動します。シンスを行うための最良の方法は何かについてのアイデア。私の友人は連鎖を提案しましたが、連鎖がどのように機能するかを理解できませんでした....

これを読んでくださった方、そして助けてくださった方に感謝します。

4

0 に答える 0