• SDUST 小学期飞机大战简述


    2020-07-28

    高考成绩陆续出炉了,群地位+FFFFFFFFFFFFFFFF。

    本章主要整理了一些一定需要使用的MFC类,并提供了微软官方文档的链接供参考。

    CDC类

    CDC类定义了设备上下文对象,使用户可以方便地在窗口绘制图形图像和格式化打印字符。游戏中利用它在窗口中绘制血条、提示字符以及各种图像和背景等。使用到的CDC类下相关的方法有:

    1. BOOL Ellipse(int x1, int y1, int x2, int y2); 在该CDC对象绘制椭圆
    2. BOOL Rectangle (int x1, int y1, int x2, int y2); 在该CDC对象绘制矩形
    3. BOOL TextOut(int x, int y, LPCTSTR lpszString, int nCount); 在该CDC对象打印字符
    4. BOOL TextOut(int x, int y, const CString& str); 在该CDC对象打印CString类型变量
    5. CPen* SelectObject(CPen* pPen);CBrush* SelectObject(CBrush* pBrush); 等,选择GDI对象。传入新对象的指针,返回旧对象的指针
    6. CGdiObject* SelectStockObject(int nIndex); 选择对应于预定义库存笔、画笔或字体之一的CGdiObject对象,如透明填充效果(NULL_BRUSH)等,同时返回旧的CGdiObject对象指针

    两个和 CDC 类相关的类

    不解释,自己看。

    1. CPen类
    2. CBrush类

    CObList类

    CObList类是支持按顺序或按指针值访问的非独特指针的有序列表,可以像双向链一样使用。它可以用来存储游戏中敌机、子弹、导弹、爆炸效果和各种奖励,并使用POSITION型的迭代器来访问和管理,以此实现遍历各个对象的碰撞检测和显示输出。游戏中使用到的CObList方法有:

    1. POSITION AddTail(CObject* newElement); 向链表尾部添加新对象的指针,返回对象在链表中的位置
    2. POSITION GetHeadPosition() const; 获取链表头部对象的位置,返回POSITION型值
    3. CObject*& GetNext(POSITION& rPosition); 获取rPosition 位置的元素,然后将 rPosition刷新为链表中下一个位置;如果已经到达尾部,则把rPosition设为NULL
    4. void RemoveAll(); 删除链表中的所有指针

    注意在删除指针的时候,你有义务自己释放指针所指向的对象。

    CImageList类

    CImageList定义了一个图像列表,它是相同大小图像的集合,利用可以方便地管理位图列表,实现游戏中各种图像的存储、背景的滚动以及爆炸效果的实现。值得注意的是需要先使用LoadImageW获得图像的HANDLE。使用到的该类的方法有:

    1. BOOL Draw(CDC* pDC, int nImage, POINT pt, UINT nStyle); pDC指定绘图的CDC对象;nImage是从0开始的列表下标;pt指定图像左上角在CDC对象上的位置;nStyle指定绘图的形式,如ILD_TRANSPARENT背景透明

    CRect类

    定义了一个矩形

    1. BOOL IntersectRect(LPCRECT lpRect1, LPCRECT lpRect2) throw(); 如果两个矩形有交集,则返回TRUE,否则返回FALSE
    2. CPoint CenterPoint() const throw(); 返回矩形的中心点坐标

    两个可能用到的类

    后面的章节会有实例。

    1. CButton类
    2. CDialog类

    本章完

    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

  • 相关阅读:
    算法打基础——符号&递归解法
    算法打基础——算法基本分析
    最小生成树——Kruskal算法
    最小生成树——Prim算法
    物理DG主备库切换时遇到ORA-16139: media recovery required错误
    Dataguard 主库与备库的Service_Name 不一致时,如何配置客户端TNSName
    oracle 11g RAC 在Windows 7下安装
    关于存储大小的计量单位
    老家的亲戚关系
    Unity3D学习笔记——NGUI之UIInput
  • 原文地址:https://www.cnblogs.com/weilinfox/p/13391352.html
Copyright © 2020-2023  润新知