implement change direction with buttons
This commit is contained in:
@@ -25,8 +25,7 @@ const uint32_t game_over[] = {
|
|||||||
int snake_x[4]= {4, 3, 2, 1};
|
int snake_x[4]= {4, 3, 2, 1};
|
||||||
int snake_y[4]= {3, 3, 3, 3};
|
int snake_y[4]= {3, 3, 3, 3};
|
||||||
int snake_len= 4;
|
int snake_len= 4;
|
||||||
// direction 1 right, 2 bottom, 3 left, 4 top
|
char direction= 'r';
|
||||||
int direction= 1;
|
|
||||||
|
|
||||||
// apple initial position
|
// apple initial position
|
||||||
//int apple_x= 9;
|
//int apple_x= 9;
|
||||||
@@ -67,22 +66,22 @@ void move_snake() {
|
|||||||
|
|
||||||
//snake_y[0]= snake_y[0];
|
//snake_y[0]= snake_y[0];
|
||||||
// go right
|
// go right
|
||||||
if (direction == 1) {
|
if (direction == 'r') {
|
||||||
snake_x[0]+= 1;
|
snake_x[0]+= 1;
|
||||||
if (snake_x[0] > 11) snake_x[0]= 0;
|
if (snake_x[0] > 11) snake_x[0]= 0;
|
||||||
}
|
}
|
||||||
// go down
|
// go bottom
|
||||||
else if (direction == 2) {
|
else if (direction == 'b') {
|
||||||
snake_y[0]+= 1;
|
snake_y[0]+= 1;
|
||||||
if (snake_y[0] > 7) snake_y[0]= 0;
|
if (snake_y[0] > 7) snake_y[0]= 0;
|
||||||
}
|
}
|
||||||
// go left
|
// go left
|
||||||
else if (direction == 3) {
|
else if (direction == 'l') {
|
||||||
snake_x[0]-= 1;
|
snake_x[0]-= 1;
|
||||||
if (snake_x[0] < 0) snake_x[0]= 11;
|
if (snake_x[0] < 0) snake_x[0]= 11;
|
||||||
}
|
}
|
||||||
// go up
|
// go up
|
||||||
else if (direction == 4) {
|
else if (direction == 'u') {
|
||||||
snake_y[0]-= 1;
|
snake_y[0]-= 1;
|
||||||
if (snake_y[0] < 0) snake_y[0]= 7;
|
if (snake_y[0] < 0) snake_y[0]= 7;
|
||||||
}
|
}
|
||||||
@@ -92,11 +91,26 @@ void move_snake() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void change_direction() {
|
void change_direction() {
|
||||||
|
// up
|
||||||
|
int u= digitalRead(13);
|
||||||
|
// right
|
||||||
|
int r= digitalRead(12);
|
||||||
|
// bottom
|
||||||
|
int b= digitalRead(11);
|
||||||
|
// left
|
||||||
|
int l= digitalRead(10);
|
||||||
|
|
||||||
|
if (u == HIGH && direction != 'b') direction= 'u';
|
||||||
|
else if (r == HIGH && direction != 'l') direction= 'r';
|
||||||
|
else if (b == HIGH && direction != 'u') direction= 'b';
|
||||||
|
else if (l == HIGH && direction != 'r') direction= 'l';
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
change_direction();
|
||||||
matrix.renderBitmap(frame, 8, 12);
|
matrix.renderBitmap(frame, 8, 12);
|
||||||
delay(300);
|
delay(300);
|
||||||
move_snake();
|
move_snake();
|
||||||
direction= 2;
|
// XXX to remove
|
||||||
|
direction= 'b';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user