
Completed Snake Program
Dependencies: N5110 PinDetect PowerControl mbed
Fork of DocTest by
main.cpp
- Committer:
- MBirney
- Date:
- 2015-04-08
- Revision:
- 2:deb61a34ac31
- Parent:
- 1:6fc14cd8ccf1
- Child:
- 3:478b090b7e1b
File content as of revision 2:deb61a34ac31:
#include "mbed.h" #include "N5110.h" // VCC,SCE,RST,D/C,MOSI,SCLK,LED N5110 lcd(p7,p8,p9,p10,p11,p13,p21); //d // Can also power (VCC) directly from VOUT (3.3 V) - // Can give better performance due to current limitation from GPIO pin enum Difficulty { EASY, MEDIUM, HARD, }; int gameSpeed;//change depending on difficulty selected Difficulty currentDifficulty =EASY; void displaySplash() { // these are default settings so not strictly needed lcd.inverseMode(); // normal colour mode lcd.setBrightness(0.5); // put LED backlight on 50% //Draw S lcd.drawRect(28,10,2,5,1); lcd.drawRect(15,10,15,2,1); lcd.drawRect(15,10,2,10,1); lcd.drawRect(15,20,15,2,1); lcd.drawRect(28,20,2,10,1); lcd.drawRect(15,28,15,2,1); lcd.drawRect(15,25,2,3,1); lcd.printString("NAKE ",34,3); lcd.printString("By M.Birney",10,5); lcd.drawRect(10,5,65,30,0); // need to refresh display after setting pixels lcd.refresh(); } void easySelected() // display when easy is selected { lcd.clear(); lcd.printString("Please Select",2,0); lcd.printString("Difficulty:",2,1); lcd.printString("Easy",20,3); lcd.printString("Medium",20,4); lcd.printString("Hard",20,5); lcd.refresh(); lcd.drawCircle(10,27,2,1); lcd.drawCircle(10,35,2,0); lcd.drawCircle(10,43,2,0); gameSpeed= 1.0; } void mediumSelected() // display when medium is selected { lcd.clear(); lcd.printString("Please Select",2,0); lcd.printString("Difficulty:",2,1); lcd.printString("Easy",20,3); lcd.printString("Medium",20,4); lcd.printString("Hard",20,5); lcd.refresh(); lcd.drawCircle(10,27,2,0); lcd.drawCircle(10,35,2,1); lcd.drawCircle(10,43,2,0); gameSpeed=1.0/4; } void hardSelected() // display when hard is selected { lcd.clear(); lcd.printString("Please Select",2,0); lcd.printString("Difficulty:",2,1); lcd.printString("Easy",20,3); lcd.printString("Medium",20,4); lcd.printString("Hard",20,5); lcd.refresh(); lcd.drawCircle(10,27,2,0); lcd.drawCircle(10,35,2,0); lcd.drawCircle(10,43,2,1); gameSpeed=1.0/8; } int main() { // first need to initialise display lcd.init(); displaySplash(); wait(1); easySelected(); wait(2); mediumSelected(); wait(2); hardSelected(); while(1) { switch(currentDifficulty) { case EASY: switch (joystick.direction) case UP: hardSelected; break; case DOWN: mediumSelected; break; break; case MEDIUM: switch (joystick.direction) case UP: easySelected; break; case DOWN: hardSelected; break; break; case HARD: switch (joystick.direction) case UP: mediumSelected; break; case DOWN: easySelected; break; break; } } }