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; } }