通过按钮来控制贪吃蛇的移动,在屏幕上随机生成食物,吃完后身体变长。
相关代码如下
void snakeMove() {
int upButtonState = digitalRead(UP_BUTTON_PIN);
int downButtonState = digitalRead(DOWN_BUTTON_PIN);
int leftButtonState = digitalRead(LEFT_BUTTON_PIN);
int rightButtonState = digitalRead(RIGHT_BUTTON_PIN);
int n = 0;
direction = LEFT;
if (upButtonState == LOW) {
direction = UP;
n ++;
} else if (downButtonState == LOW) {
direction = DOWN;
n ++;
} else if (leftButtonState == LOW) {
direction = LEFT;
n++;
} else if (rightButtonState == LOW) {
direction = RIGHT;
n++;
} else {
direction = NONE;
// 如果没有按钮被按下,则不执行任何动作
}
for (int i = snake.size - 1; i > 0; i--) {
snake.coor[i] = snake.coor[i - 1];
}
switch (direction) {
case UP:
snake.coor[0].y -= snake.speed;
direction = UP;
display.clearDisplay();
break;
case DOWN:
snake.coor[0].y += snake.speed;
direction = DOWN;
display.clearDisplay();
break;
case LEFT:
snake.coor[0].x -= snake.speed;
direction = LEFT;
display.clearDisplay();
break;
case RIGHT:
snake.coor[0].x += snake.speed;
direction = RIGHT;
display.clearDisplay();
break;
case NONE:
direction = direction;
break;
}
GameDraw();
}
电路图如下:
由上图可以简单实现贪吃蛇的相关功能。