zoukankan      html  css  js  c++  java
  • 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类的释放方法。

        

  • 相关阅读:
    UWP开发之Mvvmlight实践一:如何在项目中添加使用Mvvmlight(图文详解)
    poj2909 欧拉素数筛选
    南京区域赛总结
    poj 2551 Ones
    poj 2524 Ubiquitous Religions(简单并查集)
    poj 2503 Babelfish(字典树或map或哈希或排序二分)
    poj 3080 Blue Jeans
    hdoj 4762 Cut the Cake
    linux tar.gz zip 解压缩 压缩命令
    poj 3714 寻找最近点对
  • 原文地址:https://www.cnblogs.com/smh2015/p/9682788.html
Copyright © 2011-2022 走看看