一些做小游戏时遇到的C语言杂碎知识

杂碎知识点:

1. #include<graphics.h>

  1. 下载了图形库easyx,帮助入门图形编程
  2. graphics.h头文件包含函数:
    【x,y表示坐标,r表示圆半径】
    ① circle(x, y, r); : 画一个空心圆
    ② setfillcolor(COLOR); : 填充颜色
    ③ fillcircle(x, y, r); : 画一个实心圆

2. #include<time.h>

  1. 用于调用时间函数clock()
  2. clock()函数 :
    ① 时间函数,包含于time.h头文件
    ② 用于获取当前毫秒数

3. #include<mmsystem.h>
win32 多媒体设备接口

4. #pragma comment(lib,“winmm.lib”)
用于调用音频

5. 枚举
【内部用 " , " 相接,最后一个不用 " , " 】
enum
{
,
,

};

6. bool类型

  1. bool类型只要两个值:真和假,即1和0
  2. bool类型是C++所有的,C语言没有

7. 共用体
union
{
}un;

  1. 共用体和结构体struct类似
  2. 共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员
  3. 共用体占用的内存等于最长的成员占用的内存
  4. 当存在独有属性时使用共用体

8. 实现加载图片

  1. 定义IMAGE对象
  2. 读取图片至IMAGE对象
  3. 显示IMAGE对象到需要的位置

9. mciSendString()函数

  1. mciSendString()函数,包含于mmsystem.h头文件
  2. mciSendString()函数用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等
  3. mciSendString()函数只适用于命令串接口方式(命令串中不区分大小写)
  4. mciSendString()函数向多媒体设备接口发送字符串 media device interface

10. 关于loadimage(&bk, “./images/background.jpg”);

  1. 通过函数的方式把图片保存到图片变量bk里面
  2. 出现报错:错误 C2665 “loadimage” : 2 个重载中没有一个可以转换所有参数类型
  3. 错误原因:参数有误,因为字符集不对,Unicode(报错)、多字节字符集(未报错)
  4. 解决方法:项目→属性→更改字符集类型

11. rand()函数

  1. rand():表示产生一个随机数
  2. rand()%10:表示产生的随机数结果范围为0~9

12. putimage()函数

  1. 函数格式:putimage(int ,int ,& )
    ① 前两个参数表示要贴的位置坐标
    ② 后一个参数表示要贴的图片

13. 使用透明贴图技术
用掩码图和源码图做一个颜色的二进制操作使边上空白部分去掉

14. settextcolor(COLOR)函数
Windows API 函数,设置指定DC中的文字颜色

15. settextstyle(字体大小, , “字体类型”)函数

  1. 调用方式 :void settextstyle(int font,int direction,int charsize);
  2. 设置指定DC中的文字字体和文本属性

16. textwidth()函数
返回以像素为单位的字符串宽度

17. outtextxy()函数
用于在指定位置显示一字符串

18. sprintf_s()函数
用于将数据格式化输出到字符串

19. SetBkMode()函数
用于设置指定DC的背景混合模式,背景混合模式用于与文本,填充画刷和当画笔不是实线时

20. outtextxy()函数
用于在指定位置显示一字符串

21. 设置定时器
使物体具有不同速度(或其他与时间有关的变量,根据具体情况分析)

22.DWORD
是静态变量,可自动初始化为零

23. GetAsyncKeyState()函数

  1. GetAsyncKeyState()是异步函数,非阻塞函数,会非常流畅
  2. 如果要检测字母按键:必须使用大写字母,可以检测到大写和小写;但若使用小写字母则都不可以检测到
  3. GetAsyncKeyState()函数用来判断函数调用时指定虚拟键的状态,确定用户当前是否按下了键盘上的一个键的函数。如果按下,则返回值最高位为1
  4. 写入其中的宏
    ① VK_SPACE : 表示获取到空格键
    ② VK_UP : 表示获取到上键
    ③ VK_DOWN : 表示获取到下键
    ④ VK_LEFT : 表示获取到左键
    ⑤ VK_RIGHT : 表示获取到右键

24. MessageBox()函数

  1. MessageBox()函数显示一个模态对话框,其中包含一个系统图标、 一组按钮和一个简短的特定于应用程序消息,如状态或错误的信息
  2. 消息框中返回一个整数值,该值指示用户单击了哪个按钮

25. exit()

  1. exit(0); : 函数正常退出
  2. exit(1); 或 exit(-1) : 函数异常退出
  3. exit() : 退出,传入的参数是程序退出时的状态码

26. 创建窗口

  1. 控制台窗口是自动创建的,图形窗口需要手动创建
  2. showconsole : 显示控制台创建一个窗口

27. 函数BeginBatchDraw()

  1. 双缓冲绘图 : 解决图片闪烁情况
  2. 函数格式:
    BeginBatchDraw();
    FlushBatchDraw();
    EndBatchDraw();
  3. FlushBatchDraw()函数 : 刷新一下直接输出
  4. EndBatchDraw()函数 : 结束
  5. FlushBatchDraw(),EndBatchDraw()函数是BeginBatchDraw()函数的一部分
  6. BeginBatchDraw()函数用于开始批量绘图
  7. BeginBatchDraw()函数包含于graphics.h头文件
  8. BeginBatchDraw()函数执行后,任何绘图操作都将暂时不输出到屏幕上,直到执行FlushBatchDraw() 或 EndBatchDraw() 才将之前的绘图输出。

28. while(1)循环
进行死循环,将程序卡住使其停留显示

  • 8
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值