网易云课程链接:C语言贪吃蛇教程
该教程是win32控制台的小游戏代码,只要学完C语言就可以用来作为项目练手,本篇博客主要会记录一些我不太熟悉或我认为有意义的内容
教程关于游戏规则有一处Bug:在撞墙的瞬间改变方向蛇不会死,此处我在自己的代码中做了修改
封面(封皮+音乐)
#pragma comment(lib,"winmm.lib")是什么意思
导入winmm.lib库,有了它才可以支持对windows 多媒体的编程
#pragma 是一条编译器指令,是给告诉编译器你要链接一些东西,然后在后面的comment里面指明是什么东西
使用播放文件的路径:
PlaySound("10+往事只能回味.wav", NULL, SND_FILENAME | SND_ASYNC);
使用播放文件资源ID:
#include"resource.h" 双引号导入工程头文件(非系统头文件)
PlaySound(MAKEINTRESOURCE(IDR_WAVE1), NULL, SND_RESOURCE | SND_ASYNC);
此处注意把常量写左侧可避免少打一个等号(赋值报错),另需注意不要写成 “ ”,双引号表示常量字符串会返回首地址。
显示背景、边框
shift+Tab 向前缩进,不按Tab向后缩进
随机蛇
nX对应x坐标对应列,nY对应y坐标对应行
参考:Visual Studio 2012 编译错误【error C4996: 'scanf': This function or variable may be unsafe. 】的解决方案
声明 后运行正常
蛇动起来
利用枚举处理蛇头
蛇随方向动
常用的键盘读取函数
getchar() //需要回车 _getch() //同步检测:每一步都需要输入,与实际情况相悖 GetAsyncKeyState() //异步检测,直接侦測键盘的硬件中断。
计分
运行结果如图:
具体代码已上传github:https://github.com/johnny161/C-Snake