![](/media/cache/profiles/LinkedIn_0NghoZJ.jpeg.50x50_q85.jpg)
Snake vs Block Game to be run upon K64F.
Diff: MenuClasses/Settings/Settings.cpp
- Revision:
- 43:233f93860d08
- Parent:
- 31:6566026b4c6a
- Child:
- 49:441c32f6603e
diff -r 973bb6036f81 -r 233f93860d08 MenuClasses/Settings/Settings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MenuClasses/Settings/Settings.cpp Thu Apr 25 18:12:17 2019 +0000 @@ -0,0 +1,175 @@ +#include "Settings.h" + +Settings::Settings() +{ + +} + +Settings::~Settings() +{ + +} + +int naviL[13][8] = { + {0,0,0,0,0,0,1,1}, + {0,0,0,0,0,1,1,0}, + {0,0,0,0,1,1,0,0}, + {0,0,0,1,1,0,0,0}, + {0,0,1,1,0,0,0,0}, + {0,1,1,0,0,0,0,0}, + {1,1,0,0,0,0,0,0}, + {0,1,1,0,0,0,0,0}, + {0,0,1,1,0,0,0,0}, + {0,0,0,1,1,0,0,0}, + {0,0,0,0,1,1,0,0}, + {0,0,0,0,0,1,1,0}, + {0,0,0,0,0,0,1,1}, +}; + +int naviR[13][8] = { + {1,1,0,0,0,0,0,0}, + {0,1,1,0,0,0,0,0}, + {0,0,1,1,0,0,0,0}, + {0,0,0,1,1,0,0,0}, + {0,0,0,0,1,1,0,0}, + {0,0,0,0,0,1,1,0}, + {0,0,0,0,0,0,1,1}, + {0,0,0,0,0,1,1,0}, + {0,0,0,0,1,1,0,0}, + {0,0,0,1,1,0,0,0}, + {0,0,1,1,0,0,0,0}, + {0,1,1,0,0,0,0,0}, + {1,1,0,0,0,0,0,0}, +}; + +float * Settings::Implement(N5110 &lcd, Gamepad &pad, int st, float cs) +{ + Settings::info(lcd, pad); + pad.init(); + while (pad.check_event(Gamepad::BACK_PRESSED) == false) { //if button pressed. + Direction d = pad.get_direction(); + wait(1/cs); + lcd.clear(); + + if((d==E)&&(st==5)) { + st=1; + } + else if((d==W)&&(st==1)) { + st=5; + } + else if((d==E)&&(1<=st<=4)) { + st=st+1; + } + else if((d==W)&&(2<=st<=5)) { + st=st-1; + } + lcd.drawSprite(5,22,13,8,(int *)naviL); //Function used to draw the sprite. + lcd.drawSprite(71,22,13,8,(int *)naviR); //Function used to draw the sprite. + if(st==1) { + cs = Settings::controlSensitivity(lcd, pad); + } + if(st==2) { + Settings::brigntness(lcd, pad); + } + if(st==3) { + Settings::contrast(lcd, pad); + } + if(st==4) { + Settings::volume(lcd, pad); + } + if(st==5) { + cs_sc[1] = Settings::showCredits(lcd, pad); + } + lcd.refresh(); + } + cs_sc[0] = cs; + return cs_sc; +} + +void Settings::info(N5110 &lcd, Gamepad &pad) +{ + lcd.clear(); + pad.leds_on(); + lcd.printString("For selecting",0,0);//Function used to promt the user to how to use settings. + lcd.printString("from settings",0,1); + lcd.printString("available, use",0,2); + lcd.printString("Joystick in <>",0,3); + lcd.printString("directions",0,4); + lcd.refresh(); + wait(2); + lcd.clear(); + lcd.printString("For adjusting",0,0); + lcd.printString("the parameters,",0,1); + lcd.printString("use the pot",0,2); + lcd.printString("by rotating",0,3); + lcd.printString("Press Back",0,4); + lcd.printString("to confirm",0,5); + lcd.refresh(); + wait(2); + pad.leds_off(); + lcd.clear(); +} + +float Settings::controlSensitivity(N5110 &lcd, Gamepad &pad) +{ + lcd.printString("Control Speeds",0,0); + float cs; + cs = pad.read_pot()*5+1; + lcd.drawRect(15,22,54,13,FILL_TRANSPARENT); + lcd.drawRect(15,22,pad.read_pot()*54,13,FILL_BLACK); + pad.leds_on(); + return cs; +} + +void Settings::brigntness(N5110 &lcd, Gamepad &pad) +{ + lcd.printString("Brigntness",9,0); + float pot; + pot = pad.read_pot(); + lcd.drawRect(15,22,54,13,FILL_TRANSPARENT); + lcd.drawRect(15,22,pad.read_pot()*54,13,FILL_BLACK); + lcd.setBrightness(pot); + pad.leds_on(); +} + +void Settings::contrast(N5110 &lcd, Gamepad &pad) +{ + lcd.printString("Contrast",16,0); + float pot; + pot = ((pad.read_pot()+3.8)/8); + lcd.drawRect(15,22,54,13,FILL_TRANSPARENT); + lcd.drawRect(15,22,pad.read_pot()*54,13,FILL_BLACK); + lcd.setContrast(pot); + pad.leds_on(); +} + +void Settings::volume(N5110 &lcd, Gamepad &pad) +{ + lcd.printString("Volume",20,0); + float pot; + pot = pad.read_pot(); + lcd.drawRect(15,22,54,13,FILL_TRANSPARENT); + lcd.drawRect(15,22,pot*54,13,FILL_BLACK); + pad.leds_on(); +} + +int Settings::showCredits(N5110 &lcd, Gamepad &pad) +{ + lcd.printString("Show Credits?",5,0); + float pot; + int show = 1; + pot = pad.read_pot(); + + if(((0.1<=pot)&&(pot<=0.2))||((0.3<=pot)&&(pot<=0.4))||((0.5<=pot)&&(pot<=0.6))||((0.7<=pot)&&(pot<=0.8))||((0.9<=pot)&&(pot<=1))) { + lcd.printString("NO",36,3); + show = 0; + } + + else { + lcd.printString("YES",33,3); + show = 1; + } + + pad.leds_on(); + return show; +} \ No newline at end of file