StartMenu::StartMenu(sf::RenderWindow &window) : window(window) { setTextAttributes(menuEntryStart, bebas, sf::Color(255, 255, 255), 36, 250.f, 150.f, "Tile Based"); setTextAttributes(menuEntryStart2, bebas, sf::Color(255, 255, 255), 36, 250.f, 225.f, "Vector Based"); setTextAttributes(menuEntryOptions, bebas, sf::Color(255, 255, 255), 36, 250.f, 300.f, "Options"); setTextAttributes(menuEntryQuit, bebas, sf::Color(255, 255, 255), 36, 250.f, 375.f, "Quit"); menuEntryStartRect = sf::IntRect(250, 150, 150, 45); menuEntryStartRect2 = sf::IntRect(250, 225, 160, 45); menuEntryOptionsRect = sf::IntRect(250, 300, 110, 45); menuEntryQuitRect = sf::IntRect(250, 375, 70, 45); mouseLock = true; }
CRenderer::CRenderer(void) { RenderingMode=false; //Zapelniamy tablice zerami na poczatek for(int y=0; y<50; y++){ for(int x=0; x<80; x++) { if(!((x==79) && (y==49))) { LastRendered[x][y]=0; } else continue; } } setTextAttributes(0x0F); //printf("Renderer stworzony\n"); }
// clear the screen using default attributes (reset to defaults as well) void clearScreen() { setTextAttributes(FOREGROUND_BLUE |FOREGROUND_GREEN |FOREGROUND_RED ); fillScreen(); }
int CRenderer::Render(int tab[80][50]) { setTextAttributes(0x0F); //Renderujemy, ale tylko to co sie zmienilo w stosunku do ostatniego renderu int SnakeHead_x=0, SnakeHead_y=0; for(int y=0; y<50; y++){ for(int x=0; x<80; x++) { if(!((x==79) && (y==49))) { if(LastRendered[x][y]!=tab[x][y]){ switch(tab[x][y]) { case EMPTY: gotoXY(x,y); write(' '); break; case WALL: gotoXY(x,y); write(219); break; case SNAKEHEAD: setTextAttributes(FOREGROUND_GREEN); gotoXY(x,y); SnakeHead_x=x; SnakeHead_y=y; write('H'); break; case SNAKEBODY: setTextAttributes(FOREGROUND_GREEN); gotoXY(x,y); write('X'); break; case TREASURE: setTextAttributes(FOREGROUND_RED); gotoXY(x,y); write('S'); break; case TRAP: gotoXY(x,y); if (RenderingMode) write('.'); else write(' '); break; case PARTICLE1: setTextAttributes(FOREGROUND_RED); gotoXY(x,y); write('^'); break; case PARTICLE2: setTextAttributes(FOREGROUND_GREEN); gotoXY(x,y); write('\"'); break; case PARTICLE3: setTextAttributes(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY); gotoXY(x,y); write('+'); break; case PARTICLE4: setTextAttributes(FOREGROUND_BLUE); gotoXY(x,y); write('#'); break; case PARTICLE1_ON_WALL: setTextAttributes(FOREGROUND_RED | 0xF0); gotoXY(x,y); write('^'); break; case PARTICLE2_ON_WALL: setTextAttributes(FOREGROUND_GREEN | 0xF0); gotoXY(x,y); write('\"'); break; case PARTICLE3_ON_WALL: setTextAttributes(FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY | 0xF0); gotoXY(x,y); write('+'); break; case PARTICLE4_ON_WALL: setTextAttributes(FOREGROUND_BLUE | 0xF0); gotoXY(x,y); write('#'); break; default: gotoXY(x,y); write((char)tab[x][y]); break; } setTextAttributes(0x0F); } // gotoXY(79,49); } } } RenderTrapsNearSnake(tab,SnakeHead_x,SnakeHead_y); memcpy(LastRendered,tab,50*80*sizeof(int)); return 0; }