前言
上一篇实现了游戏内的对话框,但是还存在一些问题,这次解决一下。
正题
上次的窗口有这么一些问题。
1.窗口点上后,鼠标按住可以随着移动,当再次点击拖动的时候,窗口会突然跳跃一次,问题原因是没有将第一次的鼠标和窗口中心的坐标刷新导致。
2.窗口后面如果有按钮的时候,窗口后面的按钮也会跟着一起响应,问题原因是没有区分窗口和窗口之间的层次导致消息混乱。
3.代码冗余,问题原因,设计问题。
以上三个问题都解决了,所以简单说明一下解决方案。
第一个问题,我将场景类中加入了一个获取焦点的函数,每次获取焦点的时候计算一次差值即可。
第二个问题,我为每个窗口都分配了一个焦点,每次被点击的时候,场景的焦点就是被点击窗口,回调函数也只响应被点击的窗口。
第三个问题,将加载过程写成了一个函数,一个最基本的函数,有新的需求可以基于函数嵌套拓展。
源码