class for obstacles in Car_race game

Obstacles.cpp

Committer:
fy14aaz
Date:
2017-04-21
Revision:
9:d5f90988545e
Parent:
8:c8007ccac5c0
Child:
10:515df7535b2f

File content as of revision 9:d5f90988545e:

#include "Obstacles.h"

Obstacles::Obstacles()
{
    
}

Obstacles::~Obstacles()
{
    
}

void Obstacles::init(int seed)
{
    _Obstacle_x = seed;
    _score = 0;
    _totalscore = 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,11,25,2,FILL_BLACK);  // it was lcd.drawRect(2,2,25,2,FILL_BLACK); 
      break;
      
      case 1:
      lcd.drawRect(28,11,27,2,FILL_BLACK);  // it was lcd.drawRect(28,2,27,2,FILL_BLACK);
      break;
      
      case 2:
      lcd.drawRect(56,11,25,2,FILL_BLACK);  // it was  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][37];              // it was char pixelstate[82][46]; 
  for (int i=1; i<83; i+=1) {          // it was    for (int i=1; i<83; i+=1) {
            for (int j=10; j<47; j+=1) {   // it was for (int j=1; j<47; j+=1) {
             if (lcd.getPixel(i,j)) {      // if (lcd.getPixel(i,j)) {
                 pixelstate[i-1][j-10]=1;   //  pixelstate[i-1][j-1]=1;
                }
             else  {
             pixelstate[i-1][j-10]=0;        //  pixelstate[i-1][j-1]=0;
         }
      }
   }
   for (int i=1; i<83; i+=1) {           // it was  for (int i=1; i<83; i+=1) { 
            for (int j=10; j<47; j+=1) {    // it was  for (int j=1; j<47; j+=1) { 
                if ((pixelstate[i-1][j-10]) ) {   // it was  if ((pixelstate[i-1][j-1]) ) { 
                    lcd.setPixel(i,j+2);         //       lcd.setPixel(i,j+2);
                }      // CAN INCREASE THE SPEED BY ADDING 1 FOR Y VALUES
                if ((pixelstate[i-1][j-11]==0) ) {    // if ((pixelstate[i-1][j-2]==0) ) {
                    lcd.setPixel(i,j+1,false);     //  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++;
                _totalscore++;
                break;
                }
                }
}

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

void Obstacles::updateScore(int Event) 
{    
    if (Event == 0) {
    _score -= 10;
    }
    else if (Event == 1) {
    _score -= 10;    
    }  
}