200943373hongyun

Dependencies:   N5110 mbed

Committer:
hongyunAHN
Date:
Thu May 04 11:46:46 2017 +0000
Revision:
0:e70cf0da7c72
200943373

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hongyunAHN 0:e70cf0da7c72 1 #include "player.h"
hongyunAHN 0:e70cf0da7c72 2 #include "background.h"
hongyunAHN 0:e70cf0da7c72 3
hongyunAHN 0:e70cf0da7c72 4 player::player()
hongyunAHN 0:e70cf0da7c72 5
hongyunAHN 0:e70cf0da7c72 6 :
hongyunAHN 0:e70cf0da7c72 7 _led1(new PwmOut(PTA1)),
hongyunAHN 0:e70cf0da7c72 8 _led2(new PwmOut(PTA2)),
hongyunAHN 0:e70cf0da7c72 9 _led3(new PwmOut(PTC2)),
hongyunAHN 0:e70cf0da7c72 10 _led4(new PwmOut(PTC3)),
hongyunAHN 0:e70cf0da7c72 11 _led5(new PwmOut(PTC4)),
hongyunAHN 0:e70cf0da7c72 12 _led6(new PwmOut(PTD3)),
hongyunAHN 0:e70cf0da7c72 13
hongyunAHN 0:e70cf0da7c72 14 _button_A(new InterruptIn(PTB9)),
hongyunAHN 0:e70cf0da7c72 15 _button_B(new InterruptIn(PTD0)),
hongyunAHN 0:e70cf0da7c72 16 _button_X(new InterruptIn(PTC17)),
hongyunAHN 0:e70cf0da7c72 17 _button_Y(new InterruptIn(PTC12)),
hongyunAHN 0:e70cf0da7c72 18 _button_L(new InterruptIn(PTB18)),
hongyunAHN 0:e70cf0da7c72 19 _button_R(new InterruptIn(PTB3)),
hongyunAHN 0:e70cf0da7c72 20 _button_back(new InterruptIn(PTB19)),
hongyunAHN 0:e70cf0da7c72 21 _button_start(new InterruptIn(PTC5)),
hongyunAHN 0:e70cf0da7c72 22 _button_joystick(new InterruptIn(PTC16)),
hongyunAHN 0:e70cf0da7c72 23
hongyunAHN 0:e70cf0da7c72 24 _vert(new AnalogIn(PTB10)),
hongyunAHN 0:e70cf0da7c72 25 _horiz(new AnalogIn(PTB11)),
hongyunAHN 0:e70cf0da7c72 26
hongyunAHN 0:e70cf0da7c72 27 _buzzer(new PwmOut(PTC10)),
hongyunAHN 0:e70cf0da7c72 28 _pot(new AnalogIn(PTB2)),
hongyunAHN 0:e70cf0da7c72 29
hongyunAHN 0:e70cf0da7c72 30 _timeout(new Timeout()),
hongyunAHN 0:e70cf0da7c72 31
hongyunAHN 0:e70cf0da7c72 32 _event_state(0),
hongyunAHN 0:e70cf0da7c72 33
hongyunAHN 0:e70cf0da7c72 34 _x0(0),
hongyunAHN 0:e70cf0da7c72 35 _y0(0)
hongyunAHN 0:e70cf0da7c72 36 {}
hongyunAHN 0:e70cf0da7c72 37
hongyunAHN 0:e70cf0da7c72 38
hongyunAHN 0:e70cf0da7c72 39
hongyunAHN 0:e70cf0da7c72 40
hongyunAHN 0:e70cf0da7c72 41
hongyunAHN 0:e70cf0da7c72 42 player::~player()
hongyunAHN 0:e70cf0da7c72 43 {
hongyunAHN 0:e70cf0da7c72 44
hongyunAHN 0:e70cf0da7c72 45 delete _led1,_led2,_led3,_led4,_led5,_led6;
hongyunAHN 0:e70cf0da7c72 46 delete _button_A,_button_B,_button_joystick,_vert,_horiz;
hongyunAHN 0:e70cf0da7c72 47 delete _button_X,_button_Y,_button_back,_button_start;
hongyunAHN 0:e70cf0da7c72 48 delete _button_L,_button_R, _buzzer, _pot, _timeout;
hongyunAHN 0:e70cf0da7c72 49
hongyunAHN 0:e70cf0da7c72 50
hongyunAHN 0:e70cf0da7c72 51 }
hongyunAHN 0:e70cf0da7c72 52 Vector2D player::get_player_coord(){
hongyunAHN 0:e70cf0da7c72 53 const char array[3][3]={
hongyunAHN 0:e70cf0da7c72 54 {1,1,1},
hongyunAHN 0:e70cf0da7c72 55 {1,1,1},
hongyunAHN 0:e70cf0da7c72 56 {1,1,1},
hongyunAHN 0:e70cf0da7c72 57 };
hongyunAHN 0:e70cf0da7c72 58
hongyunAHN 0:e70cf0da7c72 59 }
hongyunAHN 0:e70cf0da7c72 60
hongyunAHN 0:e70cf0da7c72 61 void player::init(int x,int y){
hongyunAHN 0:e70cf0da7c72 62
hongyunAHN 0:e70cf0da7c72 63 const char array[3][3]={
hongyunAHN 0:e70cf0da7c72 64 {1,1,1},
hongyunAHN 0:e70cf0da7c72 65 {1,1,1},
hongyunAHN 0:e70cf0da7c72 66 {1,1,1},
hongyunAHN 0:e70cf0da7c72 67 };
hongyunAHN 0:e70cf0da7c72 68 _speed=1:
hongyunAHN 0:e70cf0da7c72 69 setXYAddress(2,2);
hongyunAHN 0:e70cf0da7c72 70 }
hongyunAHN 0:e70cf0da7c72 71
hongyunAHN 0:e70cf0da7c72 72 void player::read_input(background &pad)
hongyunAHN 0:e70cf0da7c72 73 {
hongyunAHN 0:e70cf0da7c72 74 _d = pad.get_direction();
hongyunAHN 0:e70cf0da7c72 75 //_mag = pad.get_mag();
hongyunAHN 0:e70cf0da7c72 76 }
hongyunAHN 0:e70cf0da7c72 77
hongyunAHN 0:e70cf0da7c72 78 void player::move_update()
hongyunAHN 0:e70cf0da7c72 79 {
hongyunAHN 0:e70cf0da7c72 80
hongyunAHN 0:e70cf0da7c72 81 }
hongyunAHN 0:e70cf0da7c72 82
hongyunAHN 0:e70cf0da7c72 83 void player::update(Direction d)
hongyunAHN 0:e70cf0da7c72 84 {
hongyunAHN 0:e70cf0da7c72 85
hongyunAHN 0:e70cf0da7c72 86 const char map[48][85] = get_mapped_coord();
hongyunAHN 0:e70cf0da7c72 87 Vector2D monsterPos = get_pos();
hongyunAHN 0:e70cf0da7c72 88 if(A_PRESSED){
hongyunAHN 0:e70cf0da7c72 89 if(map[Y][X+5]==1){
hongyunAHN 0:e70cf0da7c72 90 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 91 }
hongyunAHN 0:e70cf0da7c72 92 else{setXYAddress(X+5,Y);}
hongyunAHN 0:e70cf0da7c72 93 }
hongyunAHN 0:e70cf0da7c72 94 else if (B_PRESSED){
hongyunAHN 0:e70cf0da7c72 95 if(map[Y+5][X]==1){
hongyunAHN 0:e70cf0da7c72 96 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 97 }
hongyunAHN 0:e70cf0da7c72 98 else{setXYAddress(X,Y+5);}
hongyunAHN 0:e70cf0da7c72 99 }
hongyunAHN 0:e70cf0da7c72 100 else if (d == N) {
hongyunAHN 0:e70cf0da7c72 101 if(map[Y+3][X]==1){
hongyunAHN 0:e70cf0da7c72 102 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 103 }
hongyunAHN 0:e70cf0da7c72 104 else if (map[Y+3][X+2]==1){
hongyunAHN 0:e70cf0da7c72 105 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 106 }
hongyunAHN 0:e70cf0da7c72 107 else{
hongyunAHN 0:e70cf0da7c72 108 setXYAddress(X,Y+1);
hongyunAHN 0:e70cf0da7c72 109 }
hongyunAHN 0:e70cf0da7c72 110 }
hongyunAHN 0:e70cf0da7c72 111 else if (d == S) {
hongyunAHN 0:e70cf0da7c72 112 if(map[Y-1][X]==1){
hongyunAHN 0:e70cf0da7c72 113 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 114 }
hongyunAHN 0:e70cf0da7c72 115 else if(map[Y-1][X+2]==1){
hongyunAHN 0:e70cf0da7c72 116 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 117 }
hongyunAHN 0:e70cf0da7c72 118 else{
hongyunAHN 0:e70cf0da7c72 119 setXYAddress(X,Y-1);
hongyunAHN 0:e70cf0da7c72 120 }
hongyunAHN 0:e70cf0da7c72 121 }else if (d == W) {
hongyunAHN 0:e70cf0da7c72 122 if(map[Y][X-1]==1){
hongyunAHN 0:e70cf0da7c72 123 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 124 }
hongyunAHN 0:e70cf0da7c72 125 else if(map[Y+2][X-1]==1){
hongyunAHN 0:e70cf0da7c72 126 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 127 }
hongyunAHN 0:e70cf0da7c72 128 else{
hongyunAHN 0:e70cf0da7c72 129 setXYAddress(X-1,Y);
hongyunAHN 0:e70cf0da7c72 130 }
hongyunAHN 0:e70cf0da7c72 131 }else if (d == E) {
hongyunAHN 0:e70cf0da7c72 132 if(map[Y][X+3]==1){
hongyunAHN 0:e70cf0da7c72 133 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 134 }
hongyunAHN 0:e70cf0da7c72 135 else if(map[Y+2][X+3]==1){
hongyunAHN 0:e70cf0da7c72 136 setXYAddress(X,Y);
hongyunAHN 0:e70cf0da7c72 137 }
hongyunAHN 0:e70cf0da7c72 138 else{
hongyunAHN 0:e70cf0da7c72 139 setXYAddress(X+1,Y);
hongyunAHN 0:e70cf0da7c72 140 }
hongyunAHN 0:e70cf0da7c72 141 }
hongyunAHN 0:e70cf0da7c72 142 }
hongyunAHN 0:e70cf0da7c72 143
hongyunAHN 0:e70cf0da7c72 144
hongyunAHN 0:e70cf0da7c72 145 if(pin==(40,24)){
hongyunAHN 0:e70cf0da7c72 146 lcd.printString(" GOAL ",0,2);
hongyunAHN 0:e70cf0da7c72 147 }
hongyunAHN 0:e70cf0da7c72 148 if(pin==(83,43) ){
hongyunAHN 0:e70cf0da7c72 149 lcd.printString(" FAKE ",0,2);
hongyunAHN 0:e70cf0da7c72 150 lcd.printString(" Find the other way ",0,2);
hongyunAHN 0:e70cf0da7c72 151 lcd.refresh();
hongyunAHN 0:e70cf0da7c72 152 }
hongyunAHN 0:e70cf0da7c72 153
hongyunAHN 0:e70cf0da7c72 154 if(pin==(56,4)){
hongyunAHN 0:e70cf0da7c72 155 leds_on(0.2);
hongyunAHN 0:e70cf0da7c72 156 lcd.printString(" trap ",0,2);
hongyunAHN 0:e70cf0da7c72 157 leds_off(0.2);
hongyunAHN 0:e70cf0da7c72 158 lcd.printString(" Find the other way ",0,2);
hongyunAHN 0:e70cf0da7c72 159 lcd.refresh();
hongyunAHN 0:e70cf0da7c72 160 setXYAddress(2,2);
hongyunAHN 0:e70cf0da7c72 161 }
hongyunAHN 0:e70cf0da7c72 162 if(pin==(77,29)){
hongyunAHN 0:e70cf0da7c72 163 leds_on(0.2);
hongyunAHN 0:e70cf0da7c72 164 lcd.printString(" trap ",0,2);
hongyunAHN 0:e70cf0da7c72 165 lcd.refresh();
hongyunAHN 0:e70cf0da7c72 166 leds_off(0.2);
hongyunAHN 0:e70cf0da7c72 167
hongyunAHN 0:e70cf0da7c72 168 setXYAddress(2,2);
hongyunAHN 0:e70cf0da7c72 169 }
hongyunAHN 0:e70cf0da7c72 170 if(pin==(65,40)){
hongyunAHN 0:e70cf0da7c72 171 leds_on(0.2);
hongyunAHN 0:e70cf0da7c72 172 lcd.printString(" JUMP ",0,2);
hongyunAHN 0:e70cf0da7c72 173 leds_off(0.2);
hongyunAHN 0:e70cf0da7c72 174 lcd.refresh();
hongyunAHN 0:e70cf0da7c72 175 setXYAddress(65,30);
hongyunAHN 0:e70cf0da7c72 176 }
hongyunAHN 0:e70cf0da7c72 177
hongyunAHN 0:e70cf0da7c72 178