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类的释放方法。

        

  • 相关阅读:
    shell 学习笔记 LinuxShell脚本攻略(第2版)
    [六省联考2017]分手是祝愿
    [SDOI2010]粟粟的书架
    [CQOI2018]解锁屏幕
    [SCOI2007]最大土地面积
    CF369E Valera and Queries
    CF817F MEX Queries
    [HEOI2016/TJOI2016]求和
    [CQOI2018]九连环
    [HNOI2015]亚瑟王
  • 原文地址:https://www.cnblogs.com/smh2015/p/9682788.html
Copyright © 2011-2022 走看看