
Issue appears to occur when one of the obstacles x value reaches -4
Dependencies: mbed
Car.cpp@0:e1f5bfbb6e53, 2020-03-27 (annotated)
- Committer:
- equense
- Date:
- Fri Mar 27 10:23:53 2020 +0000
- Revision:
- 0:e1f5bfbb6e53
commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
equense | 0:e1f5bfbb6e53 | 1 | #include "Car.h" |
equense | 0:e1f5bfbb6e53 | 2 | |
equense | 0:e1f5bfbb6e53 | 3 | //Global Variables |
equense | 0:e1f5bfbb6e53 | 4 | const int car[7][15]{ |
equense | 0:e1f5bfbb6e53 | 5 | { 0,0,0,0,1,1,1,1,0,0,0,0,0,0,0 }, |
equense | 0:e1f5bfbb6e53 | 6 | { 0,0,0,1,1,0,0,1,1,0,0,0,0,0,0 }, |
equense | 0:e1f5bfbb6e53 | 7 | { 1,1,1,1,0,0,0,0,1,1,0,0,0,0,0 }, |
equense | 0:e1f5bfbb6e53 | 8 | { 1,0,0,0,0,0,0,0,0,1,1,1,1,1,1 }, |
equense | 0:e1f5bfbb6e53 | 9 | { 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }, |
equense | 0:e1f5bfbb6e53 | 10 | { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
equense | 0:e1f5bfbb6e53 | 11 | { 0,0,0,1,1,0,0,0,0,1,1,0,0,0,0 }, |
equense | 0:e1f5bfbb6e53 | 12 | }; |
equense | 0:e1f5bfbb6e53 | 13 | |
equense | 0:e1f5bfbb6e53 | 14 | volatile int x=1; |
equense | 0:e1f5bfbb6e53 | 15 | volatile int y=1; |
equense | 0:e1f5bfbb6e53 | 16 | volatile int xo = 84; |
equense | 0:e1f5bfbb6e53 | 17 | volatile int yo = rand()%24+1; |
equense | 0:e1f5bfbb6e53 | 18 | volatile int xo1 = 84+28; |
equense | 0:e1f5bfbb6e53 | 19 | volatile int yo1 = rand()%24+25; |
equense | 0:e1f5bfbb6e53 | 20 | volatile int xo2 = 84+56; |
equense | 0:e1f5bfbb6e53 | 21 | volatile int yo2 = rand()%24+1; |
equense | 0:e1f5bfbb6e53 | 22 | volatile int xo3 = 84+84; |
equense | 0:e1f5bfbb6e53 | 23 | volatile int yo3 = rand()%24+25; |
equense | 0:e1f5bfbb6e53 | 24 | |
equense | 0:e1f5bfbb6e53 | 25 | // Constructor and destructor |
equense | 0:e1f5bfbb6e53 | 26 | Car::Car() |
equense | 0:e1f5bfbb6e53 | 27 | { |
equense | 0:e1f5bfbb6e53 | 28 | |
equense | 0:e1f5bfbb6e53 | 29 | } |
equense | 0:e1f5bfbb6e53 | 30 | |
equense | 0:e1f5bfbb6e53 | 31 | Car::~Car() |
equense | 0:e1f5bfbb6e53 | 32 | { |
equense | 0:e1f5bfbb6e53 | 33 | |
equense | 0:e1f5bfbb6e53 | 34 | } |
equense | 0:e1f5bfbb6e53 | 35 | |
equense | 0:e1f5bfbb6e53 | 36 | void Car::draw(N5110 &lcd) |
equense | 0:e1f5bfbb6e53 | 37 | { |
equense | 0:e1f5bfbb6e53 | 38 | |
equense | 0:e1f5bfbb6e53 | 39 | lcd.drawSprite(x,y,7,15,(int *)car); |
equense | 0:e1f5bfbb6e53 | 40 | } |
equense | 0:e1f5bfbb6e53 | 41 | |
equense | 0:e1f5bfbb6e53 | 42 | void Car::obstacle(N5110 &lcd) |
equense | 0:e1f5bfbb6e53 | 43 | { |
equense | 0:e1f5bfbb6e53 | 44 | lcd.drawRect(xo,yo,4,10,FILL_BLACK); |
equense | 0:e1f5bfbb6e53 | 45 | lcd.drawRect(xo1,yo1,4,10,FILL_BLACK); |
equense | 0:e1f5bfbb6e53 | 46 | lcd.drawRect(xo2,yo2,4,10,FILL_BLACK); |
equense | 0:e1f5bfbb6e53 | 47 | lcd.drawRect(xo3,yo3,4,10,FILL_BLACK); |
equense | 0:e1f5bfbb6e53 | 48 | } |
equense | 0:e1f5bfbb6e53 | 49 | |
equense | 0:e1f5bfbb6e53 | 50 | void Car::obupdate() |
equense | 0:e1f5bfbb6e53 | 51 | { |
equense | 0:e1f5bfbb6e53 | 52 | xo--; |
equense | 0:e1f5bfbb6e53 | 53 | xo1--; |
equense | 0:e1f5bfbb6e53 | 54 | xo2--; |
equense | 0:e1f5bfbb6e53 | 55 | xo3--; |
equense | 0:e1f5bfbb6e53 | 56 | if(xo==-28){ |
equense | 0:e1f5bfbb6e53 | 57 | xo = 84; |
equense | 0:e1f5bfbb6e53 | 58 | } |
equense | 0:e1f5bfbb6e53 | 59 | if(xo1==-28){ |
equense | 0:e1f5bfbb6e53 | 60 | xo1 = 84; |
equense | 0:e1f5bfbb6e53 | 61 | } |
equense | 0:e1f5bfbb6e53 | 62 | if(xo2==-28){ |
equense | 0:e1f5bfbb6e53 | 63 | xo2 = 84; |
equense | 0:e1f5bfbb6e53 | 64 | } |
equense | 0:e1f5bfbb6e53 | 65 | if(xo3==-28){ |
equense | 0:e1f5bfbb6e53 | 66 | xo3 = 84; |
equense | 0:e1f5bfbb6e53 | 67 | } |
equense | 0:e1f5bfbb6e53 | 68 | printf("xo = %i\n",xo); |
equense | 0:e1f5bfbb6e53 | 69 | printf("xo1 = %i\n",xo1); |
equense | 0:e1f5bfbb6e53 | 70 | printf("xo2 = %i\n",xo2); |
equense | 0:e1f5bfbb6e53 | 71 | printf("xo3 = %i\n",xo3); |
equense | 0:e1f5bfbb6e53 | 72 | // Code appears to stop running when any one of the above variables reaches -4 |
equense | 0:e1f5bfbb6e53 | 73 | |
equense | 0:e1f5bfbb6e53 | 74 | } |
equense | 0:e1f5bfbb6e53 | 75 | |
equense | 0:e1f5bfbb6e53 | 76 | void Car::update(Gamepad &pad) |
equense | 0:e1f5bfbb6e53 | 77 | { |
equense | 0:e1f5bfbb6e53 | 78 | Direction d = pad.get_direction(); |
equense | 0:e1f5bfbb6e53 | 79 | float mag = pad.get_mag(); |
equense | 0:e1f5bfbb6e53 | 80 | |
equense | 0:e1f5bfbb6e53 | 81 | if(d == E && mag > 0.3){ |
equense | 0:e1f5bfbb6e53 | 82 | x = x+2; |
equense | 0:e1f5bfbb6e53 | 83 | wait_ms(10); |
equense | 0:e1f5bfbb6e53 | 84 | } |
equense | 0:e1f5bfbb6e53 | 85 | if(d == W && mag > 0.3){ |
equense | 0:e1f5bfbb6e53 | 86 | x = x-2; |
equense | 0:e1f5bfbb6e53 | 87 | wait_ms(10); |
equense | 0:e1f5bfbb6e53 | 88 | } |
equense | 0:e1f5bfbb6e53 | 89 | if(d == N && mag > 0.3){ |
equense | 0:e1f5bfbb6e53 | 90 | y = y-2; |
equense | 0:e1f5bfbb6e53 | 91 | wait_ms(10); |
equense | 0:e1f5bfbb6e53 | 92 | } |
equense | 0:e1f5bfbb6e53 | 93 | if(d == S && mag > 0.3){ |
equense | 0:e1f5bfbb6e53 | 94 | y = y+2; |
equense | 0:e1f5bfbb6e53 | 95 | wait_ms(10); |
equense | 0:e1f5bfbb6e53 | 96 | } |
equense | 0:e1f5bfbb6e53 | 97 | //printf("x = %i\n",x); |
equense | 0:e1f5bfbb6e53 | 98 | //printf("y = %i\n",y); |
equense | 0:e1f5bfbb6e53 | 99 | |
equense | 0:e1f5bfbb6e53 | 100 | } |
equense | 0:e1f5bfbb6e53 | 101 |