• C++ MFC棋牌类小游戏day2


    反思了一下昨天的设计,觉得略有不足,我决定把棋盘做成单例模式。这样的话需要重新设计棋盘类,emmm,是新建棋盘类。

    Baord类

    成员变量:

    Location  coordinate;//棋子坐标

    bool isHavePiece;//记录是否有棋子

    CRect rect;//备用

    vector<Loaction> all_Board;//整个棋盘

    方法:

    int  Coordinate_Px(Location  loc,CRect &rect);

    int  Px_Coordinate(CRect rect,Location  &loc);

    先这样吧,不够再加

     这样的话,棋子应该也需要重新设计一下

    PaintPiece方法只负责话棋子,位置通过棋盘类中的Px_Coordinate转换

    嗯。。。。。今天留下了一堆问题,明天有时间的话去解决

    1.Tiger棋子画失败,应该是View的OnSize传的cx和cy的问题

    2.搞清楚cx和cy的值是什么

    3.嗯。。。我的逻辑应该没问题

    链接:https://pan.baidu.com/s/1UlTCEDepaOPHVtynxGbtmQ 密码:t3nw

     找到上面的问题了

    1.问题一出在OnSize这边,传输的cx和cy都是0

    在网上搜了一下,好像也有网友遇到过这个情况,看到过一位博主提到重绘,待会试一下,现在我是通过OnPaint传的值

    试过Invalidate(),并没什么用,以后再查一下

    2.问题二在画棋子时候我resize了vector的大小,导致前两个空间已经存了0,注释掉即可

     有发现一个大bug,棋子位置不随着窗口大小改变,本来是以为OnSize和Onpaint的问题,通过调试发现是tiger和board里面的vector没有清除,导致内部数据无限累加,使用ersase(beg,end)清理一遍就ok了。

    需要添加free board类的释放方法。

        

  • 相关阅读:
    PHP常用字符串函数
    PHP 中解析 url 并得到 url 参数
    PHP中的10个实用函数
    虚拟主机知识全解
    php三种常用的加密解密算法
    Javascript中的位运算符和技巧
    ECMAScript 5中新增的数组方法
    捕捉小括号获取的内容保存在RegExp的$1 $2..属性中
    js获取浏览器窗口的大小
    关于switch的思考和总结
  • 原文地址:https://www.cnblogs.com/smh2015/p/9682788.html
Copyright © 2020-2023  润新知