zoukankan      html  css  js  c++  java
  • 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:返回初始界面


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

  • 相关阅读:
    leetcode第26题--Remove Duplicates from Sorted Array
    leetcode第25题--Remove Element
    leetcode第24题--Reverse Nodes in k-Group
    leetcode第23题--Swap Nodes in Pairs
    leetcode第22题--Merge k Sorted Lists
    leetcode第21题--Generate Parentheses
    leetcode第20题--Valid Parentheses
    leetcode第19题--Remove Nth Node From End of List
    leetcode第18题--Letter Combinations of a Phone Number
    leetcode第17题--4Sum
  • 原文地址:https://www.cnblogs.com/hesoyamlyf/p/5628193.html
Copyright © 2011-2022 走看看