C++ MFC棋牌类小游戏day5
先整理一下之前的内容:
1.画了棋盘,把棋盘的每个点的状态都保存起来。
2.画棋子,分别用tiger类和people类画了棋子,并且保存了棋子的初始状态。
下面开始设计棋子的移动:
1.单机棋子,选中要移动的棋子
触发鼠标单机事件,传递窗口坐标。
把窗口坐标转换成棋盘坐标。
判断棋盘坐标是否有棋子,没有棋子直接返回。
更改棋子的状态,isChose
更改棋盘坐标的状态。num isHavePiece根据num判断
2.单机棋盘坐标,选中要移动的位置
触发鼠标单机事件,传递窗口坐标。
把窗口坐标转换成棋盘坐标。
更改棋子的状态,x y num isChose
更改前后两个棋盘坐标的状态。
有发现一个大坑,tiger和people两个类应该放在ruler里面定义,View界面通过调用ruler来设置tiger和people
填完坑,然后在ruler类中写ClientToMove方法,用来判断棋子的选中和移动。
根据上面所述,吧棋盘和棋子的状态改变一下。
然后就是根据棋子状态画棋子了。
虎的棋子还好画一点,因为虎没有重叠,直接根据坐标就能画出。
人的棋子开始有重叠,需要进行判断画出不同的棋子。
不过有了初始化时候的经验,这些应该不是问题了。
先画虎的Chose