SDUST 小学期飞机大战简述 - 2绕不开的MFC类
2020-07-28
高考成绩陆续出炉了,群地位+FFFFFFFFFFFFFFFF。
本章主要整理了一些一定需要使用的MFC类,并提供了微软官方文档的链接供参考。
CDC类
CDC类定义了设备上下文对象,使用户可以方便地在窗口绘制图形图像和格式化打印字符。游戏中利用它在窗口中绘制血条、提示字符以及各种图像和背景等。使用到的CDC类下相关的方法有:
BOOL Ellipse(int x1, int y1, int x2, int y2);
在该CDC对象绘制椭圆BOOL Rectangle (int x1, int y1, int x2, int y2);
在该CDC对象绘制矩形BOOL TextOut(int x, int y, LPCTSTR lpszString, int nCount);
在该CDC对象打印字符BOOL TextOut(int x, int y, const CString& str);
在该CDC对象打印CString类型变量CPen* SelectObject(CPen* pPen);
和CBrush* SelectObject(CBrush* pBrush);
等,选择GDI对象。传入新对象的指针,返回旧对象的指针CGdiObject* SelectStockObject(int nIndex);
选择对应于预定义库存笔、画笔或字体之一的CGdiObject对象,如透明填充效果(NULL_BRUSH)等,同时返回旧的CGdiObject对象指针
两个和 CDC 类相关的类
不解释,自己看。
CObList类
CObList类是支持按顺序或按指针值访问的非独特指针的有序列表,可以像双向链一样使用。它可以用来存储游戏中敌机、子弹、导弹、爆炸效果和各种奖励,并使用POSITION型的迭代器来访问和管理,以此实现遍历各个对象的碰撞检测和显示输出。游戏中使用到的CObList方法有:
POSITION AddTail(CObject* newElement);
向链表尾部添加新对象的指针,返回对象在链表中的位置POSITION GetHeadPosition() const;
获取链表头部对象的位置,返回POSITION型值CObject*& GetNext(POSITION& rPosition);
获取rPosition 位置的元素,然后将 rPosition刷新为链表中下一个位置;如果已经到达尾部,则把rPosition设为NULLvoid RemoveAll();
删除链表中的所有指针
注意在删除指针的时候,你有义务自己释放指针所指向的对象。
CImageList类
CImageList定义了一个图像列表,它是相同大小图像的集合,利用可以方便地管理位图列表,实现游戏中各种图像的存储、背景的滚动以及爆炸效果的实现。值得注意的是需要先使用LoadImageW获得图像的HANDLE。使用到的该类的方法有:
BOOL Draw(CDC* pDC, int nImage, POINT pt, UINT nStyle);
pDC指定绘图的CDC对象;nImage是从0开始的列表下标;pt指定图像左上角在CDC对象上的位置;nStyle指定绘图的形式,如ILD_TRANSPARENT背景透明
CRect类
定义了一个矩形
BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw();
如果两个矩形有交集,则返回TRUE,否则返回FALSECPoint CenterPoint() const throw();
返回矩形的中心点坐标
两个可能用到的类
后面的章节会有实例。
本章完
by SDUST weilinfox
本文地址 https://www.cnblogs.com/weilinfox/p/13391352.html
前章 https://www.cnblogs.com/weilinfox/p/13390862.html
续章 未编辑
后面的章节大概率鸽了,有需要的可以在仓库主页提issue
https://github.com/weilinfox/SDUST_PlaneGame