gpt4 book ai didi

c - 如何在 C 中返回此数据?

转载 作者:行者123 更新时间:2023-12-01 23:26:20 25 4
gpt4 key购买 nike

这是一个思想问题,我已经思考了大约一天。

我正在用 C 编写一个游戏引擎(开源,为了好玩),所有界面(读取 GUI)元素都在函数 interfaceMouse() 中处理鼠标输入。基本上,我会定期调用 interfaceMouse() 来查看用户是否使用该界面进行操作。

我希望此函数获取最新的鼠标点击,查看它是否与任何 GUI 元素交互,然后返回鼠标点击如何与 gui 元素交互。

给定两个不同的 gui 元素:

  • 按钮(用户点击按钮 A)
  • 选择菜单(用户选择菜单 A 的选项 1)

我正在尝试找出将接口(interface)事件返回给调用函数的最佳方式。我现在最好的猜测是每种事件类型(buttonEvents、selectEvents)的链接列表,以及像 getNextButtonEvent() 这样的函数,它返回一个事件特定的值。 interfaceMouse() 返回一个值,该值取决于鼠标事件触发的事件类型,然后调用函数必须使用 getNextTypeEvent() 从相应列表中检索该事件。

我对这种方法不是很满意,想知道是否有人有更好的想法或可以提供一些额外的远见?

最佳答案

根据您的描述,我做出了一些假设,但我将如何处理:

interfaceMouse() 确定需要从鼠标交互中发生什么,但不处理实际的交互(或者,处理交互但想要显式返回完成的操作)。我要做的是让 interfaceMouse() 返回一个定义类似于以下内容的结构:

struct 
{
int event_type; /* Enumerated type */
void* element; /* Pointer to the element, however it's defined in the code */
void* event_data; /* Pointer to the data about the event */
} event_result;

您可以通过访问基于类型的元素来定义调用(例如,另一个带有函数指针的结构,或者让 event_data 保存函数指针和传递给它的元素等)。

C 是其中一种语言,它需要更多地考虑数据建模,但最终可能会像您想要的那样优雅或复杂。

关于c - 如何在 C 中返回此数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1694912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com