贪吃蛇游戏的制作记录 | 您所在的位置:网站首页 › 蛇香游戏 › 贪吃蛇游戏的制作记录 |
关于蛇的实现代码 #include "snake.h" #include "globalvar.h" #include int fangXiang = 1;//方向 0 右 1 上 2 左 3 下 int snakeHang[100] = { 10,11,12,13,14 };//蛇 每节所在行 int snakeLie[100] = { 10,10,10,10,10 };//蛇 每节所在列 int snakeLength = 5;//当前的长度 IMAGE imgHead[4]; IMAGE imgBody; void snakeMove() { //身体爬行 for (int j = snakeLength - 1; j >= 1; j--) { snakeHang[j] = snakeHang[j - 1]; snakeLie[j] = snakeLie[j - 1]; } //头爬行 switch (fangXiang) { case 0: snakeLie[0]++;//右 break; case 1: snakeHang[0]--;//上 break; case 2: snakeLie[0]--;//左 break; case 3: snakeHang[0]++;//下 break; } } int enabledEat() { return snakeHang[0] == appleHang && snakeLie[0] == appleLie; } void snakeGrow() { snakeLength++; } int enabledOver() { return snakeHang[0] == 0 || snakeHang[0] == 19 || snakeLie[0] == 0 || snakeLie[0] == 19; } int enabledEatSelf() { //状态思维: int yes = 0; //检查 for (int i = 1; i < snakeLength; i++) { if (snakeHang[0] == snakeHang[i] && snakeLie[0] == snakeLie[i]) { yes = 1; break; } } return yes; } void snakeDown() { if (fangXiang != 1) { fangXiang = 3; } } void snakeUp() { fangXiang = 1; } void snakeRight() { fangXiang = 0; } void snakeLeft() { fangXiang = 2; } void snakegraph() { putimage(snakeLie[0] * 30, snakeHang[0] * 30, &imgHead[fangXiang]); for (int j = 1; j < snakeLength; j++) { putimage(snakeLie[j] * 30, snakeHang[j] * 30, &imgBody); } } void snakegraphHead() { TCHAR str[100]; for (int i = 0; i < 4; i++) { _stprintf(str, L".\\she\\head%d.bmp", i); loadimage(&imgHead[i], str); } loadimage(&imgBody, L".\\she\\body.bmp"); } |
CopyRight 2018-2019 实验室设备网 版权所有 |