![](/media/cache/profiles/LinkedIn_0NghoZJ.jpeg.50x50_q85.jpg)
Snake vs Block Game to be run upon K64F.
MenuClasses/Settings/Settings.cpp
- Committer:
- AhmedPlaymaker
- Date:
- 2019-04-27
- Revision:
- 55:df0825049171
- Parent:
- 49:441c32f6603e
- Child:
- 56:142e9fdb77a8
File content as of revision 55:df0825049171:
#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, float cs) { Settings::info(lcd, pad); int st = 1; 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; } Settings::CallFunctions(lcd, pad, st); } pad.tone(1000.0,0.1); return cs_sc; } void Settings::CallFunctions(N5110 &lcd, Gamepad &pad, int st) { 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. switch (st) { case 1: Settings::controlSensitivity(lcd, pad); break; case 2: Settings::brigntness(lcd, pad); break; case 3: Settings::contrast(lcd, pad); break; case 4: Settings::volume(lcd, pad); break; case 5: Settings::showCredits(lcd, pad); break; } lcd.refresh(); } 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(); } void Settings::controlSensitivity(N5110 &lcd, Gamepad &pad) { lcd.printString("Control Speeds",0,0); cs_sc[0] = 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(); } 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(); } void Settings::showCredits(N5110 &lcd, Gamepad &pad) { lcd.printString("Show Credits?",5,0); float pot; 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); cs_sc[1] = 0; } else { lcd.printString("YES",33,3); cs_sc[1] = 1; } pad.leds_on(); }