OpenGL游戏制作之路[第八篇 游戏内对话框(2)]---2D游戏---(注:此版本作者处于探索阶段,希望能得到读者的指教和建议)

前言

上一篇实现了游戏内的对话框,但是还存在一些问题,这次解决一下。

正题

上次的窗口有这么一些问题。

1.窗口点上后,鼠标按住可以随着移动,当再次点击拖动的时候,窗口会突然跳跃一次,问题原因是没有将第一次的鼠标和窗口中心的坐标刷新导致。

2.窗口后面如果有按钮的时候,窗口后面的按钮也会跟着一起响应,问题原因是没有区分窗口和窗口之间的层次导致消息混乱。

3.代码冗余,问题原因,设计问题。

以上三个问题都解决了,所以简单说明一下解决方案。

第一个问题,我将场景类中加入了一个获取焦点的函数,每次获取焦点的时候计算一次差值即可。

第二个问题,我为每个窗口都分配了一个焦点,每次被点击的时候,场景的焦点就是被点击窗口,回调函数也只响应被点击的窗口。

第三个问题,将加载过程写成了一个函数,一个最基本的函数,有新的需求可以基于函数嵌套拓展。

源码

本次的源码和文件

发布了64 篇原创文章 · 获赞 16 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ARTELE/article/details/88918490