Browse Source

Allow snake to have more intuitive joystick control.

feature/2015
kju 15 years ago
parent
commit
a130f2b36b
  1. 20
      games/snake/snake_game.c

20
games/snake/snake_game.c

@ -7,6 +7,11 @@
#include "../../util.h"
#include "../../joystick/joystick.h"
// if defined, joystick controls are NOT as "seen"
// by the snake but absolute, that is, if pressing
// up, snake goes up, etc.
#define GAME_SNAKE_NEWCONTROL
// MSB is leftmost pixel
static uint8_t icon[8] PROGMEM =
{0xff, 0x81, 0xbd, 0xa5, 0xa5, 0xad, 0xa1, 0xbf}; // Snake icon
@ -53,7 +58,13 @@ void snake_game() {
++head;
if (head == pixels + 64)
head = pixels;
#ifdef GAME_SNAKE_NEWCONTROL
if (joy_cmd != 0xff)
{
dir = joy_cmd;
}
#else
if (joy_cmd == right) {
dir = direction_r(dir);
joy_cmd = 0xff;
@ -63,6 +74,7 @@ void snake_game() {
dir = direction_r(dir);
joy_cmd = 0xff;
}
#endif
// kopf einen weiter bewegen
*head = next_pixel(old_head, dir);
@ -125,6 +137,12 @@ void snake_game() {
joy = left;
}else if(JOYISRIGHT){
joy = right;
#ifdef GAME_SNAKE_NEWCONTROL
}else if(JOYISUP) {
joy = up;
} else if(JOYISDOWN) {
joy = down;
#endif
}else{
joy = 0xff;
}

Loading…
Cancel
Save