2008.12.29
昨天晚上终于把象棋的棋盘画出来了!
今天则需要把棋子初始化,之后放到象棋开局的位置上。(这个工作也顺利完成了)
现在的工作是如何在CplayDlg类上面移动棋子。现在的思路是在棋盘类当中加入一个二维数组,将屏幕坐标和棋盘的逻辑坐标一一对应,以方便查找。然后将选定棋子move到新的位置,再调用OnPaint();
顺便说一下现在程序当中的类
CplayDlg----MFC生成的主要类
CCheckerman----自己写的棋子类。主要方法就是MOVE。
CChessboard----自己写的棋盘类。负责画出棋盘,并且建立屏幕坐标和棋盘逻辑坐标的对应关系~!
目前界面做到这个程度了。30号先回学校考试。之后听完今年的维也纳音乐会再来继续做吧~!![](http://www.cppblog.com/images/cppblog_com/hitme/xiangqi.jpg)
顺便说一下。这个棋盘是我自己一笔一笔用VC画出来的。真费劲啊!还有那些棋子的素材也来之不易。我把一个象棋游戏当中的资源给拔下来了!又需要素材或者源程序的朋友请邮件联系!~
ps:这个游戏的四大目标
1、实现双人同机对战
2、实现双人网络对战
3、实现人机对战
4、加入后台数据库实现用户注册和积分等功能。注册部分希望可以独立的使用Ruby on Rails写出来!
小弟初学乍练。不到之处多多包涵! 2008.12.31
在2008年最后一天的下午,我又想写一写这个想起程序了。
目前遇到的问题是由于使用DrawIconEx等函数实现棋子的移动效果的时候屏幕会出现闪烁!请问各位如何防止这种情况的出现呢?换句话说就是在调用OnPaint函数的时候,只刷新当前棋子位置的屏幕,而其他部分则不刷新!
第二个问题是我想用GDI+来显示ICO图像。可是却失败了,源码如下……
Image image(L"C:\\Users\\Administrator\\Desktop\\ico128.ico");
CRect rect;
GetWindowRect(&rect);
Graphics graphics(hdc);
graphics.DrawImage(&image, 0, 0,rect.Width(),rect.Height());
但是当把imang参数变为L"C:\\Users\\Administrator\\Desktop\\i200831313448532_2.jpg就能显示出来。不知道是不是GDI+不支持ICO格式呢?(我又检查了一遍,路径没有问题!);
请各位老大赐教一下吧!~
posted on 2008-12-29 00:30
HIT@ME 阅读(2773)
评论(18) 编辑 收藏 引用