正确处理具有多个文件的大型项目中的事件SDL2 C ++

问题描述

这是我一段时间以来一直在努力的事情,它最终给我的程序带来了问题。我不知道如何处理SDL2上具有多个文件的大型项目中的事件。当前,我有一个事件文件,该文件具有SDL2的主事件循环,并且具有静态变量。例如,我有bool Events::mouseClicked = false; 在事件循环中,如果单击的话,我将其设置为true,然后在释放时设置为false。到目前为止,这种方式一直有效。.直到现在,因为任何需要事件的文件,我只会在其他文件的标头中包含events.h,然后在标头中创建它的实例,然后如果需要如果找到鼠标是否被点击,我会打电话给if (EVENTS.mouseClicked == true){}... 但是现在,这种方法不适用于滚动。如果我有一堆对象要绘制到屏幕上,例如说文本。 for (int i=0; i < listofThings.size(); i++){ if (EVENTS.mouseScrolled == true) { listofThings[i].Change_Pos(x,y+ EVENTS.scrollVal); } listofThings[i].Draw_Text(renderer) }如果所有这些文本在滚动时都需要移动,我会遇到错误,因为它是静态的,如果在for循环遍历文本时滚动鼠标说,它可能会更改其中的一些内容,但并非总是如此,尤其是由于其他进程而导致fps下降时。这不是构造事件处理的可用方法。还有其他方法可以确保不会发生这种情况,并且可以一次发生多个事件,例如CTRL + c或诸如此类。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)