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

        

  • 相关阅读:
    chrome书签插件
    Js箭头函数和lambda
    CSS水平或垂直居中技巧
    前端需要注意的SEO优化
    OpenCV图像识别初探-50行代码教机器玩2D游戏
    机器学习笔记(十一)----降维
    基于Docker搭建分布式消息队列Kafka
    一个经典面试题:如何保证缓存与数据库的双写一致性?
    Flask 蓝图机制及应用
    软件开发团队如何管理琐碎、突发性任务
  • 原文地址:https://www.cnblogs.com/smh2015/p/9682788.html
Copyright © 2011-2022 走看看