![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
200943373hongyun
player/player.cpp@0:e70cf0da7c72, 2017-05-04 (annotated)
- Committer:
- hongyunAHN
- Date:
- Thu May 04 11:46:46 2017 +0000
- Revision:
- 0:e70cf0da7c72
200943373
Who changed what in which revision?
User | Revision | Line number | New 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 |