Kern Fowler / Mbed 2 deprecated Donkey_Kong_Game

Dependencies:   mbed

Committer:
Kern_EL17KJTF
Date:
Tue May 07 22:49:13 2019 +0000
Revision:
10:28575a6eaa13
Child:
11:b288d01533cc
Classes setup without error.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kern_EL17KJTF 10:28575a6eaa13 1 /*
Kern_EL17KJTF 10:28575a6eaa13 2 ELEC2645 Project
Kern_EL17KJTF 10:28575a6eaa13 3 Options.cpp
Kern_EL17KJTF 10:28575a6eaa13 4 Class file for Options in Donkey Kong game.
Kern_EL17KJTF 10:28575a6eaa13 5 */
Kern_EL17KJTF 10:28575a6eaa13 6
Kern_EL17KJTF 10:28575a6eaa13 7 #include "Options.h"
Kern_EL17KJTF 10:28575a6eaa13 8
Kern_EL17KJTF 10:28575a6eaa13 9 Options::Options()
Kern_EL17KJTF 10:28575a6eaa13 10 {
Kern_EL17KJTF 10:28575a6eaa13 11
Kern_EL17KJTF 10:28575a6eaa13 12 }
Kern_EL17KJTF 10:28575a6eaa13 13
Kern_EL17KJTF 10:28575a6eaa13 14 Options::~Options()
Kern_EL17KJTF 10:28575a6eaa13 15 {
Kern_EL17KJTF 10:28575a6eaa13 16
Kern_EL17KJTF 10:28575a6eaa13 17 }
Kern_EL17KJTF 10:28575a6eaa13 18
Kern_EL17KJTF 10:28575a6eaa13 19 void Options::options_init() {
Kern_EL17KJTF 10:28575a6eaa13 20 float opt_brightness = 0.5;
Kern_EL17KJTF 10:28575a6eaa13 21 float opt_contrast = 0.396;
Kern_EL17KJTF 10:28575a6eaa13 22 int opt_volume = 1;
Kern_EL17KJTF 10:28575a6eaa13 23 }
Kern_EL17KJTF 10:28575a6eaa13 24
Kern_EL17KJTF 10:28575a6eaa13 25 void Options::options_run(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 10:28575a6eaa13 26 wait_ms(250);
Kern_EL17KJTF 10:28575a6eaa13 27 while (pad.check_event(Gamepad::BACK_PRESSED) == false) {
Kern_EL17KJTF 10:28575a6eaa13 28 //printf("Options State");
Kern_EL17KJTF 10:28575a6eaa13 29 lcd.clear();
Kern_EL17KJTF 10:28575a6eaa13 30 lcd.printString("Options",21,0);
Kern_EL17KJTF 10:28575a6eaa13 31 options_brightness(pad, lcd);
Kern_EL17KJTF 10:28575a6eaa13 32 options_contrast(pad, lcd);
Kern_EL17KJTF 10:28575a6eaa13 33 options_volume(pad, lcd);
Kern_EL17KJTF 10:28575a6eaa13 34 lcd.refresh();
Kern_EL17KJTF 10:28575a6eaa13 35 wait_ms(1.0f/24);
Kern_EL17KJTF 10:28575a6eaa13 36 }
Kern_EL17KJTF 10:28575a6eaa13 37 }
Kern_EL17KJTF 10:28575a6eaa13 38
Kern_EL17KJTF 10:28575a6eaa13 39 void Options::options_brightness(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 10:28575a6eaa13 40 if (pad.check_event(Gamepad::B_PRESSED) == true) {
Kern_EL17KJTF 10:28575a6eaa13 41 opt_brightness = 0;
Kern_EL17KJTF 10:28575a6eaa13 42 }
Kern_EL17KJTF 10:28575a6eaa13 43 if (pad.check_event(Gamepad::A_PRESSED) == true) {
Kern_EL17KJTF 10:28575a6eaa13 44 opt_brightness = 0.5;
Kern_EL17KJTF 10:28575a6eaa13 45 }
Kern_EL17KJTF 10:28575a6eaa13 46 lcd.setBrightness(opt_brightness);
Kern_EL17KJTF 10:28575a6eaa13 47 lcd.printString("A/B = BackLite",0,2);
Kern_EL17KJTF 10:28575a6eaa13 48 }
Kern_EL17KJTF 10:28575a6eaa13 49
Kern_EL17KJTF 10:28575a6eaa13 50 void Options::options_contrast(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 10:28575a6eaa13 51 opt_contrast = pad.read_pot();
Kern_EL17KJTF 10:28575a6eaa13 52 lcd.setContrast(opt_contrast);
Kern_EL17KJTF 10:28575a6eaa13 53 lcd.printString("Pot = Contrast",0,3);
Kern_EL17KJTF 10:28575a6eaa13 54 printf("Contrast = %f", opt_contrast);
Kern_EL17KJTF 10:28575a6eaa13 55 }
Kern_EL17KJTF 10:28575a6eaa13 56
Kern_EL17KJTF 10:28575a6eaa13 57 void Options::options_volume(Gamepad &pad, N5110 &lcd) {
Kern_EL17KJTF 10:28575a6eaa13 58 if (pad.check_event(Gamepad::Y_PRESSED) == true) {
Kern_EL17KJTF 10:28575a6eaa13 59 opt_volume = 0;
Kern_EL17KJTF 10:28575a6eaa13 60 }
Kern_EL17KJTF 10:28575a6eaa13 61 if (pad.check_event(Gamepad::X_PRESSED) == true) {
Kern_EL17KJTF 10:28575a6eaa13 62 opt_volume = 1;
Kern_EL17KJTF 10:28575a6eaa13 63 pad.tone(2400, 0.2);
Kern_EL17KJTF 10:28575a6eaa13 64 wait_ms(200);
Kern_EL17KJTF 10:28575a6eaa13 65 pad.tone(2400, 0.2);
Kern_EL17KJTF 10:28575a6eaa13 66 wait_ms(200);
Kern_EL17KJTF 10:28575a6eaa13 67 pad.tone(2400, 0.2);
Kern_EL17KJTF 10:28575a6eaa13 68 }
Kern_EL17KJTF 10:28575a6eaa13 69 lcd.printString("X/Y = Volume",0,4);
Kern_EL17KJTF 10:28575a6eaa13 70 if (opt_volume == 0) {
Kern_EL17KJTF 10:28575a6eaa13 71 lcd.printString("Off",36,5);
Kern_EL17KJTF 10:28575a6eaa13 72 } else {
Kern_EL17KJTF 10:28575a6eaa13 73 lcd.printString("On",36,5);
Kern_EL17KJTF 10:28575a6eaa13 74 }
Kern_EL17KJTF 10:28575a6eaa13 75
Kern_EL17KJTF 10:28575a6eaa13 76 }