Slimer软工课设日报-2016年6月29日

根据之前用户反馈的调整窗口大小后按钮失灵的问题,我设计了如下的解决方案:

由于按钮响应是通过判断是否点击在该按钮相应的xy坐标范围里来判定的,按钮的xy坐标则是通过窗口大小换算的

double changex(int x) {
    return x*2.0 / WindowWidth - 1;
}

double changey(int y) {
    return y*2.0 / WindowHeight - 1;
}
换算函数

而原先的游戏窗口大小是固定的,所以当用户改变窗口大小时,按钮还是原来的判定区域,也就造成了按钮无法点击的情况

所以在绘制窗体内容前,先利用函数获取窗口大小,实时改变窗口大小相应的全局变量,按钮判定区也就可以实时根据窗口大小更新了

void getWindowsSize() {                                    //记录当前窗口大小                                    
    int tempw, temph;
    HWND windows = GetActiveWindow();                    //获取当前活动窗口句柄
    RECT rc;
    GetWindowRect(windows, &rc);                        //获取窗口大小信息
    WindowWidth=rc.right - rc.left-16;                    //改变当前窗口宽度
    WindowHeight = rc.bottom - rc.top-39;                //改变当前窗口高度
}
获取窗口大小

具体参考了百度知道的一个回答


今天还进行了其他的改动,将在明天的版本中发布以下内容:

初始界面的更新

由原先的一打开游戏就输入ip变得更像一个网络游戏

start:点击该按钮首先会判断是否连接到服务器(ip地址改为在settting中输入),如果已成功连接则顺利进入游戏操作界面,否则将提示未连接到服务器

setting:设置选项,具体下面介绍

exit:直接关闭游戏

设置界面的添加

IP:仍为原先的ip输入,输入完ip地址后点击右侧回车图标按键以连接

music:可选择开关背景音乐

fullscreen/window:全屏和窗口化

back:返回初始界面


首先感谢同组美工同学手绘的酷炫背景,其次由于个人的家事问题导致耽误了昨天的课设开发感到十分抱歉,我将会在接下来的几天加倍努力,让团队项目逐步尽善尽美。

原文地址:https://www.cnblogs.com/hesoyamlyf/p/5628193.html