c语言实现,图形化贪吃蛇

本文分享了一段使用C语言编写的贪吃蛇游戏代码,通过w,a,s,d键控制蛇的方向。介绍了一个实现蛇尾图形化的方法——背景融入法,并解释了如何通过更新数组实现蛇的移动和转弯,帮助读者理解贪吃蛇的游戏逻辑。" 134159514,10282337,C语言矩阵对角线元素之和算法解析,"['C语言入门试题', '矩阵对角线元素之和']
摘要由CSDN通过智能技术生成

承接上篇的扫雷,在分享一个贪吃蛇的代码,w,a,s,d控制方向。


其实在写贪吃蛇的时候,代价或许会不懂蛇的尾巴怎么画,这个告诉大家一个技巧,背景融入法,就是一条边画成黑色,相信大家都懂了,相信大家如果在写的时候,可能会有些许疑惑,蛇怎么实现转弯,那么大家可以换一种思维,蛇只有头前进,身体的其他部位都是跟着前一段身体走,这样或许大家就知道怎么写了(array[1]和array[2]),数组紧贴赋值,其实根本不用考虑转弯。

附上代码:

//
//程序名称:贪吃蛇娱乐版 //
//作者:	   ys			//
//最后修改:2014.7.27	//
//编辑条件:VC6.0		//
//

#include &
//游戏状态定义 #define GAME_STATE_WAIT 0 //游戏等待状态 #define GAME_STATE_RUN 1 //游戏运行状态 #define GAME_STATE_END 2 //游戏结束状态 //界面相关物件尺寸定义 #define WALL_WIDTH 80 //外墙从左部到游戏区的宽度 #define WALL_HEIGHT 80 //外墙从顶部到游戏区的高度 #define BMP_SCORE_BOARD_WIDTH 256 //分数位图板的宽度 #define BMP_SCORE_BOARD_HEIGHT 55 //分数位图板的高度 #define BMP_WALL_WIDTH 16 //墙位图的宽度 #define BMP_WALL_HEIGHT 16 //墙位图的高度 LRESULT CALLBACK WndProc(HWND hWnd,UINT message, WPARAM wParam,LPARAM lParam); void DrawGame(void); void ShellDraw( HDC hdc ); void GameAreaDraw(HDC hdc); void OnTimer(UINT uTIMER_ID); void StartGame( void ); void EndGame( void ); //创建一个桌子 CTable table; int tableBlockWidth = 0; //桌子的格子的宽度 int tableBlockHeight = 0; //桌子的格子的高度 int iScores = 0; //游戏的得分 UINT uGameState = GAME_STATE_WAIT; //当前游戏状态 HDC windowDC = NULL; //windows屏幕设备 HDC bufferDC = NULL; //缓冲设备环境 HDC picDC = NULL; //snake图像内存设备 HDC endDC = NULL; //游戏终结图像内存设备 HDC scoreDC = NULL; //分数板内存设备 HWND hAppWnd = NULL; //本application窗口句柄 HBITMAP picBMP = NULL; //snake图像位图句柄 HBITMAP bufferBMP = NULL; //缓冲位图句柄 HBITMAP endBMP = NULL; //游戏终结图像内存句柄 HBITMAP hbmpWall = NULL; //墙位图句柄 HBITMAP hbmpScore = NULL; //分数板位图句柄 HBRUSH hbrushWall = NULL; //墙画刷 //定时器标识 UINT uSnakeMoveTimer; //蛇的移动 UINT uFoodAddTimer; //水果的产生
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值