反思了一下昨天的设计,觉得略有不足,我决定把棋盘做成单例模式。这样的话需要重新设计棋盘类,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类的释放方法。

    

C++ MFC棋牌类小游戏day2的更多相关文章

  1. C++ MFC棋牌类小游戏day1

    好用没用过C++做一个完整一点的东西了,今天开始希望靠我这点微薄的技术来完成这个小游戏. 我现在的水平应该算是菜鸟中的战斗鸡了,所以又很多东西在设计和技术方面肯定会有很大的缺陷,我做这个小游戏的目的单 ...

  2. C++ MFC棋牌类小游戏day6

    双人单机小游戏做完了,规则那部分还没介绍,暂时不打算介绍了,因为写的这个bug太多,我打算重新修改. 链接:https://pan.baidu.com/s/1XQKPSv0Tw36Qi2TeaRJiM ...

  3. C++ MFC棋牌类小游戏day5

    先整理一下之前的内容: 1.画了棋盘,把棋盘的每个点的状态都保存起来. 2.画棋子,分别用tiger类和people类画了棋子,并且保存了棋子的初始状态. 下面开始设计棋子的移动: 1.单机棋子,选中 ...

  4. C++ MFC棋牌类小游戏day4

    根据昨天的计划,今天开始做下面的内容. 1.鼠标点击事件 2.点击坐标进行处理.(坐标转换) 3.判断选中的位置是否有效. 4.确定选中的棋子,设置棋子的状态和棋子所在坐标的状态. 5.判断移动是否有 ...

  5. C++ MFC棋牌类小游戏day3

    今天开始设计小人棋子. 画法跟画虎一样,唯一不一样的是小人在刚开始会有重叠的情况,所以画起来可能比虎的棋子能够难一点. 我打算用Location结构体中的num来标记每个棋盘坐标存在棋子的个数,isH ...

  6. WEBGL学习笔记(七):实践练手1-飞行类小游戏之游戏控制

    接上一节,游戏控制首先要解决的就是碰撞检测了 这里用到了学习笔记(三)射线检测的内容了 以鸟为射线原点,向前.上.下分别发射3个射线,射线的长度较短大概为10~30. 根据上一节场景的建设,我把y轴设 ...

  7. [安卓] 12、开源一个基于SurfaceView的飞行射击类小游戏

    前言  这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示    ...

  8. android开发之网络棋牌类在线游戏开发心得(服务器端、Java) 好文章值得收藏

    标签: android服务器 2013-10-09 17:28 3618人阅读 评论(0) 收藏 举报 分类: android(11) 转自:http://blog.csdn.net/bromon/a ...

  9. Egret初体验–躲避类小游戏

    下面简单介绍一下我这个游戏:基本上就3个画面(准备再添加一个胜利的界面)开始画面,一个按钮,点击进入游戏游戏画面,滚动的背景,触摸移动的老鹰,从天而降的翔,以及右上角的时间条结束画面,显示结果,关注按 ...

随机推荐

  1. 读书笔记——《redis入门指南(第2版)》第三章 入门

    3 .redis的5种数据类型及相应命令 redis不区分命令大小写. string 512m 一个散列类型键可包含至多232-1个字段 一个列表类型键最多能容纳232-1个元素 一个集合类型键最多能 ...

  2. OpenStack Q版本新功能以及各核心组件功能对比

    OpenStack Q版本已经发布了一段时间了.今天, 小编来总结一下OpenStack Q版本核心组件的各项主要新功能, 再来汇总一下最近2年来OpenStack N.O.P.Q各版本核心组件的主要 ...

  3. Java并发编程75个问答

    1.在java中守护线程和本地线程区别? java中的线程分为两种:守护线程(Daemon)和用户线程(User). 任何线程都可以设置为守护线程和用户线程,通过方法Thread.setDaemon( ...

  4. python 如何把小数变成百分数格式

    1. 数据样本 ,valid_rate,homework_rate,inter_rate,playback_rate,zhujiang_good_comment5_rate,fudao_good_co ...

  5. python 爬虫启航2.0

    文章解析: 1.正则表达式解析 2.beautifulsoup,BeautifulSoup是一个复杂的树形结构,她的每一个节点都是一个python对象,获取网页的内容就是一个提取对象内容的过程,它的提 ...

  6. js:作用域总结1

    先说几个概念: 1.js代码从上往下执行 2.变量提升: 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域叫window,window分两个模块,一个叫内存模块,一个叫运行 ...

  7. git从远程分支clone项目到本地,切换分支命令,其他常用命令

    1.在git命令窗口输入git clone git@139.129.217.217:sg/sgsq_cms.git 回车,即可克隆远程项目到本地.红色字体为远程分支的SSHkey,可以登录到gitli ...

  8. Hibernate 再接触 HQL

    Category.java package com.bjsxt.hibernate; import javax.persistence.Entity; import javax.persistence ...

  9. java 多线程学习

    一.概念 程序.进程.线程 程序   是计算机指令的集合. 进程   是一个运行中的程序,它指的是从代码加载,执行到执行结束这样一个完整过程.每个进程占用不同的内存空间. 线程   是进程中某个单一顺 ...

  10. body标签

    标签(空格分隔): body标签 body标签: 想要在网页上展示出来的内容一定要放在body标签中. 把我们之前那一段HTML代码贴过来,保存到一个HTML格式的文件中. <!DOCTYPE ...