class for obstacles in Car_race game

Obstacles.cpp

Committer:
fy14aaz
Date:
2017-04-19
Revision:
8:c8007ccac5c0
Parent:
7:55d1306f5df5
Child:
9:d5f90988545e

File content as of revision 8:c8007ccac5c0:

#include "Obstacles.h"

Obstacles::Obstacles()
{
    
}

Obstacles::~Obstacles()
{
    
}

void Obstacles::init(int seed)
{
    _Obstacle_x = seed;
    _score = 0;
    // try to draw them here in this function as we need the draw function for another purpose 
    // are we done though? we might need to split the draw function into two, one for drawing the car
    // and the other for drawing the obstacles as they are drawn in a time basis
}

void Obstacles::draw(N5110 &lcd,int seed)
{
    _Obstacle_x = seed;
    switch(_Obstacle_x){
      
      case 0:
      lcd.drawRect(2,2,25,2,FILL_BLACK);
      break;
      
      case 1:
      lcd.drawRect(28,2,27,2,FILL_BLACK);
      break;
      
      case 2:
      lcd.drawRect(56,2,25,2,FILL_BLACK);
      break;
   }
}

void Obstacles::update(N5110 &lcd) // adjust this function to be able to store all pixels values
{                                 // then they are used to shift th screen
  //  _Obstacle_x = seed; 
  addScore(lcd);
 char pixelstate[82][46];
  for (int i=1; i<83; i+=1) {
            for (int j=1; j<47; j+=1) {
             if (lcd.getPixel(i,j)) {
                 pixelstate[i-1][j-1]=1;
                }
             else  {
             pixelstate[i-1][j-1]=0;
         }
      }
   }
   for (int i=1; i<83; i+=1) {
            for (int j=1; j<47; j+=1) {
                if ((pixelstate[i-1][j-1]) ) {
                    lcd.setPixel(i,j+2);
                }      // CAN INCREASE THE SPEED BY ADDING 1 FOR Y VALUES
                if ((pixelstate[i-1][j-2]==0) ) {
                    lcd.setPixel(i,j+1,false);
                }  
           }
     } 
}

void Obstacles::addScore(N5110 &lcd) 
{
    for (int i=2; i<83; i+=1) {
     if (lcd.getPixel(i,46)) {
                _score++;
                break;
                }
                }
}

int Obstacles::getScore()
{
    return _score;
}

void Obstacles::resetScore() 
{
    _score = 0;    
}