Ben Evans / Mbed 2 deprecated Defender_Game

Dependencies:   mbed

Committer:
evanso
Date:
Tue May 26 19:38:48 2020 +0000
Revision:
85:87bc28b151d8
Parent:
82:3211b31e9421
Spell checked all of code and comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
evanso 43:d43759dbddb9 1 #include "Settings.h"
evanso 44:2d957de3bce3 2
evanso 74:6827b43c689d 3 const char settings_part_names[4][9] = {
evanso 69:753ba27325ce 4 {"Contrast"},
evanso 69:753ba27325ce 5 {"Controls"},
evanso 69:753ba27325ce 6 {"Sound FX"},
evanso 74:6827b43c689d 7 {" Music "},
evanso 69:753ba27325ce 8 };
evanso 69:753ba27325ce 9
evanso 69:753ba27325ce 10 const char controls_part_names[2][4] = {
evanso 69:753ba27325ce 11 {"Joy"},
evanso 69:753ba27325ce 12 {"Acc"},
evanso 69:753ba27325ce 13 };
evanso 69:753ba27325ce 14
evanso 69:753ba27325ce 15 const char sound_part_names[2][4] = {
evanso 69:753ba27325ce 16 {"On"},
evanso 69:753ba27325ce 17 {"Off"},
evanso 69:753ba27325ce 18 };
evanso 69:753ba27325ce 19
evanso 74:6827b43c689d 20 const char music_part_names[2][4] = {
evanso 74:6827b43c689d 21 {"On"},
evanso 74:6827b43c689d 22 {"Off"},
evanso 74:6827b43c689d 23 };
evanso 74:6827b43c689d 24
evanso 69:753ba27325ce 25 // Defining scroll_order_settings states for scroll_order_settings FSM
evanso 74:6827b43c689d 26 scroll_order_setting settings_fsm[4] = {
evanso 74:6827b43c689d 27 {music, contrast, controls},
evanso 74:6827b43c689d 28 {contrast, controls, sound_fx},
evanso 74:6827b43c689d 29 {controls, sound_fx, music},
evanso 74:6827b43c689d 30 {sound_fx, music, contrast},
evanso 69:753ba27325ce 31 };
evanso 69:753ba27325ce 32
evanso 74:6827b43c689d 33 // Defining on_off_order states for _on_off FSM
evanso 69:753ba27325ce 34 on_off_order settings_on_off_fsm[2] = {
evanso 69:753ba27325ce 35 {off, on},
evanso 69:753ba27325ce 36 {on, off},
evanso 74:6827b43c689d 37 };
evanso 74:6827b43c689d 38
evanso 74:6827b43c689d 39 // Defining on_off_order states for music_on_off FSM
evanso 74:6827b43c689d 40 music_on_off_order music_on_off_fsm[2] = {
evanso 74:6827b43c689d 41 {music_off, music_on},
evanso 74:6827b43c689d 42 {music_on, music_off},
evanso 74:6827b43c689d 43 };
evanso 69:753ba27325ce 44
evanso 69:753ba27325ce 45 // Defining control_order states for settings_joy_acc FSM
evanso 69:753ba27325ce 46 control_order settings_joy_acc_fsm[2] = {
evanso 69:753ba27325ce 47 {acc, joy},
evanso 69:753ba27325ce 48 {joy, acc},
evanso 69:753ba27325ce 49 };
evanso 69:753ba27325ce 50
evanso 44:2d957de3bce3 51 Settings::Settings() {
evanso 44:2d957de3bce3 52
evanso 44:2d957de3bce3 53 }
evanso 44:2d957de3bce3 54
evanso 44:2d957de3bce3 55 Settings::~Settings() {
evanso 44:2d957de3bce3 56
evanso 44:2d957de3bce3 57 }
evanso 44:2d957de3bce3 58
evanso 82:3211b31e9421 59 void Settings::init() {
evanso 69:753ba27325ce 60 control_method_ = joy;
evanso 69:753ba27325ce 61 sound_method_ = on;
evanso 70:8c4572d17441 62 displayed_settings_part_ = controls;
evanso 74:6827b43c689d 63 music_method_ = music_on;
evanso 69:753ba27325ce 64 }
evanso 69:753ba27325ce 65
evanso 82:3211b31e9421 66 ControlsParts Settings::get_control_method() {
evanso 69:753ba27325ce 67 return control_method_;
evanso 69:753ba27325ce 68 }
evanso 69:753ba27325ce 69
evanso 70:8c4572d17441 70
evanso 82:3211b31e9421 71 SoundParts Settings::get_sound_method() {
evanso 73:d1aea9b8da92 72 return sound_method_;
evanso 73:d1aea9b8da92 73 }
evanso 73:d1aea9b8da92 74
evanso 82:3211b31e9421 75 MusicParts Settings::get_music_method() {
evanso 74:6827b43c689d 76 return music_method_;
evanso 74:6827b43c689d 77 }
evanso 74:6827b43c689d 78
evanso 82:3211b31e9421 79 SettingsParts Settings::get_displayed_settings_part() {
evanso 70:8c4572d17441 80 return displayed_settings_part_;
evanso 70:8c4572d17441 81 }
evanso 70:8c4572d17441 82
evanso 82:3211b31e9421 83 void Settings::display_settings_screen(N5110 &lcd, float pot_read) {
evanso 85:87bc28b151d8 84 // Prints different settings parts
evanso 82:3211b31e9421 85 if(displayed_settings_part_ == controls) {
evanso 69:753ba27325ce 86 lcd.printString(settings_part_names[displayed_settings_part_],6 ,3);
evanso 69:753ba27325ce 87 lcd.printString(controls_part_names[control_method_],60 ,3);
evanso 82:3211b31e9421 88 }else if(displayed_settings_part_ == sound_fx) {
evanso 69:753ba27325ce 89 lcd.printString(settings_part_names[displayed_settings_part_],6 ,3);
evanso 69:753ba27325ce 90 lcd.printString(sound_part_names[sound_method_],60 ,3);
evanso 82:3211b31e9421 91 }else if(displayed_settings_part_ == music) {
evanso 74:6827b43c689d 92 lcd.printString(settings_part_names[displayed_settings_part_],6 ,3);
evanso 74:6827b43c689d 93 lcd.printString(music_part_names[music_method_],60 ,3);
evanso 82:3211b31e9421 94 }else if(displayed_settings_part_ == contrast) {
evanso 69:753ba27325ce 95 lcd.printString(settings_part_names[displayed_settings_part_],6 ,3);
evanso 69:753ba27325ce 96 char buffer[2];
evanso 69:753ba27325ce 97 sprintf(buffer,"%.2f",pot_read);
evanso 69:753ba27325ce 98 lcd.printString(buffer,58,3);
evanso 69:753ba27325ce 99 }
evanso 69:753ba27325ce 100
evanso 82:3211b31e9421 101 // prints setting title and button instructions and arrows
evanso 69:753ba27325ce 102 lcd.printString("Settings",18,0);
evanso 69:753ba27325ce 103 lcd.drawSprite(39, 18, 3, 5, (int *)arrow_up);
evanso 69:753ba27325ce 104 lcd.drawSprite(39, 34, 3, 5, (int *)arrow_down);
evanso 69:753ba27325ce 105 lcd.printString("Back(B)Alt(A)",3,5);
evanso 69:753ba27325ce 106 }
evanso 69:753ba27325ce 107
evanso 69:753ba27325ce 108 void Settings::change_setting(bool pressed) {
evanso 69:753ba27325ce 109 // When a is pressed changes the settings for the displayed setting part
evanso 69:753ba27325ce 110 if (pressed) {
evanso 82:3211b31e9421 111 if (displayed_settings_part_ == sound_fx) {
evanso 69:753ba27325ce 112 sound_method_ = settings_on_off_fsm[sound_method_].part_next;
evanso 82:3211b31e9421 113 }else if(displayed_settings_part_ == controls) {
evanso 69:753ba27325ce 114 control_method_ = settings_joy_acc_fsm[control_method_].part_next;
evanso 82:3211b31e9421 115 }else if(displayed_settings_part_ == music) {
evanso 74:6827b43c689d 116 music_method_ = music_on_off_fsm[music_method_].part_next;
evanso 74:6827b43c689d 117 }
evanso 71:bcbac2cfe005 118 wait(0.3);
evanso 69:753ba27325ce 119 }
evanso 69:753ba27325ce 120
evanso 69:753ba27325ce 121 }
evanso 69:753ba27325ce 122
evanso 69:753ba27325ce 123 void Settings::settings_scroll(Direction d_) {
evanso 69:753ba27325ce 124 // Changes displayed settings part depending on joystick input
evanso 70:8c4572d17441 125 if (d_ == N || d_ == NE || d_ == NW ) {
evanso 82:3211b31e9421 126 // printf(" displayed_settings_part_ %d\n",displayed_settings_part_);
evanso 69:753ba27325ce 127 displayed_settings_part_ =
evanso 69:753ba27325ce 128 settings_fsm[displayed_settings_part_].part_next;
evanso 69:753ba27325ce 129 } else if (d_ == S || d_ == SW || d_ == SE) {
evanso 69:753ba27325ce 130 displayed_settings_part_=
evanso 74:6827b43c689d 131 settings_fsm[displayed_settings_part_].part_previous;
evanso 69:753ba27325ce 132 }
evanso 69:753ba27325ce 133 wait(0.15);
evanso 85:87bc28b151d8 134 }