class for bullet in Car_race game
Diff: Bullet.cpp
- Revision:
- 11:61bbec4ede2c
- Parent:
- 10:3726b7994e2f
- Child:
- 12:170175334df8
--- a/Bullet.cpp Fri Apr 21 21:45:54 2017 +0000 +++ b/Bullet.cpp Mon May 01 22:27:40 2017 +0000 @@ -10,53 +10,39 @@ } -void Bullet::init(Vector2D _CarHead) +void Bullet::init(Vector2D CarHead) { - _bullet_x = _CarHead.x; - _bullet_y = _CarHead.y + 2; - + _bullet_x = CarHead.x; + _bullet_y = CarHead.y + 2; // printf("x=%d y=%d \n",_bullet_x,_bullet_y); } void Bullet::draw(N5110 &lcd) { - // printf("x=%d y=%d \n",_bullet_x,_bullet_y); - - // lcd.setPixel(_bullet_x,_bullet_y+2,false); - // lcd.setPixel(_bullet_x,_bullet_y+3,false); - // lcd.setPixel(_bullet_x+1,_bullet_y+2,false); - // lcd.setPixel(_bullet_x+1,_bullet_y+3,false); - // printf("x=%d y=%d \n",_bullet_x,_bullet_y); lcd.drawRect(_bullet_x,_bullet_y,2,2,FILL_BLACK); // printf("Crashes 0 \n"); } -void Bullet::update(N5110 &lcd,int _bulletDirection) +void Bullet::update(N5110 &lcd,int bulletDirection) { - //lcd.setPixel(_bullet_x,_bullet_y,false); - //lcd.setPixel(_bullet_x,_bullet_y+1,false); - //lcd.setPixel(_bullet_x+1,_bullet_y,false); - //lcd.setPixel(_bullet_x+1,_bullet_y+1,false); clearBullet(lcd); // printf("x=%d y=%d \n",_bullet_x,_bullet_y); - if(_bulletDirection==1) { + if(bulletDirection==1) { _bullet_x = _bullet_x; _bullet_y = _bullet_y - 3; } - // printf("x=%d y=%d \n",_bullet_x,_bullet_y); - else if(_bulletDirection==2) { + else if(bulletDirection==2) { _bullet_x = _bullet_x - 3; _bullet_y = _bullet_y - 3; } - else if(_bulletDirection==3) { + else if(bulletDirection==3) { _bullet_x = _bullet_x + 3; _bullet_y = _bullet_y - 3; } - - // the following piece of code to get around the problem of the game getting stuck when the value of _bullet_x = 1 + // the following piece of code to get around the problem of the game getting stuck when the value of _bullet_x = 1 if ((_bullet_x == -2)) { clearBullet(lcd); _bullet_x = _bullet_x - 1; @@ -66,30 +52,30 @@ void Bullet::clearBullet(N5110 &lcd) { - lcd.setPixel(_bullet_x,_bullet_y,false); - lcd.setPixel(_bullet_x,_bullet_y+1,false); - lcd.setPixel(_bullet_x+1,_bullet_y,false); - lcd.setPixel(_bullet_x+1,_bullet_y+1,false); + lcd.setPixel(_bullet_x,_bullet_y,false); // top left + lcd.setPixel(_bullet_x,_bullet_y+1,false); // bottom left + lcd.setPixel(_bullet_x+1,_bullet_y,false); // top right + lcd.setPixel(_bullet_x+1,_bullet_y+1,false); // bottom right } void Bullet::destroyObstacles(N5110 &lcd) { // printf("they are x=%d y=%d \n",_bullet_x,_bullet_y); - if ((lcd.getPixel(_bullet_x,_bullet_y)) || // this is for bullet itself - (lcd.getPixel(_bullet_x,_bullet_y+1)) || // this is for bullet itself - (lcd.getPixel(_bullet_x+1,_bullet_y)) || // this is for bullet itself - (lcd.getPixel(_bullet_x+1,_bullet_y+1)) || // this is for bullet itself - (lcd.getPixel(_bullet_x,_bullet_y-1)) || // up - (lcd.getPixel(_bullet_x+1,_bullet_y-1)) || // up - (lcd.getPixel(_bullet_x,_bullet_y+2)) || // down - (lcd.getPixel(_bullet_x+1,_bullet_y+2))) { // down + if ((lcd.getPixel(_bullet_x,_bullet_y)) || // top left + (lcd.getPixel(_bullet_x,_bullet_y+1)) || // bottom left + (lcd.getPixel(_bullet_x+1,_bullet_y)) || // top right + (lcd.getPixel(_bullet_x+1,_bullet_y+1)) || // bottom right + (lcd.getPixel(_bullet_x,_bullet_y-1)) || // up left + (lcd.getPixel(_bullet_x+1,_bullet_y-1)) || // up right + (lcd.getPixel(_bullet_x,_bullet_y+2)) || // down left + (lcd.getPixel(_bullet_x+1,_bullet_y+2))) { // down right for (int i=1; i<83; i+=1) { for (int j=_bullet_y-4; j<_bullet_y+5; j+=1) { - lcd.setPixel(i,j,false); + lcd.setPixel(i,j,false); // loop through and turn off pixels around that obstacle } } - _bullet_x = -10; - _bullet_y = -10; + _bullet_x = -10; // set the coordinates of the bullet out of the screen + _bullet_y = -10; // so it won't be drawn again until re-initialise the coordinates } } \ No newline at end of file