void drawMenu() { int i; char temp[10]; //garantir que o desenho seja com relação ao sistema de coordenadas glLoadIdentity(); //muda a cor para branco glColor3ub(90, 90, 90); //divisores glBegin(GL_POINTS); for (i = 0; i < 60; i+=2) { glVertex2i(239, i); } glEnd(); //muda a cor para branco glColor3ub(255, 255, 255); drawText("M", 250, 45); drawText("E", 250, 32); drawText("N", 250, 19); drawText("U", 250, 6); //desenha as torres no menu for (i = 0; i < MAX_TOWERS; i++) { drawTower(itens[i]); drawText(itens[i].name, itens[i].position.x - 20, 17); sprintf(temp, "$%.2f", itens[i].cost); drawText(temp, itens[i].position.x - 20, 5); } }
void onDisplay() { glClearColor(0.1f, 0.2f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glDrawPixels(screenWidth, screenHeight, GL_RGB, GL_FLOAT, image); drawCoverageBar(); drawTower(centerTower); drawGreta(centerGreta); drawHansel(centerHansel); if (isCovered) { drawCoverage(); } glutSwapBuffers(); }
/** * \fn bool manageEvent(SDL_Event event, Viewport* viewport) * \brief Manage an event. * * \param event The event to manage. * \param viewport The viewport that can be moved. * \return False if the the game ends, true if not. */ bool manageEvent(SDL_Event event, Viewport* viewport, Events *flags) { bool isInPlay = true; switch(event.type) { // Quit game case SDL_QUIT: isInPlay = false; break; // Key pressed case SDL_KEYDOWN: switch(event.key.keysym.sym) { // Quit game case SDLK_ESCAPE: isInPlay = false; break; // Move view case SDLK_UP: moveViewport(viewport, UP); break; case SDLK_DOWN: moveViewport(viewport, DOWN); break; case SDLK_LEFT: moveViewport(viewport, LEFT); break; case SDLK_RIGHT: moveViewport(viewport, RIGHT); break; default: break; } break; // Mouse left click case SDL_MOUSEBUTTONDOWN: if(event.button.button == SDL_BUTTON_LEFT) { Case* caseClicked = whichCase(event.button.x, event.button.y); TypeTo* simpleTowerType = flags->selectedTower; Case *viewportOffset = whichCase(viewport->mapsurface.x,viewport->mapsurface.y); int mapPositionX = caseClicked->xx + viewportOffset->xx; int mapPositionY = caseClicked->yy + viewportOffset->yy; Tower *tower = createTower(mapPositionX, mapPositionY, simpleTowerType); if(tower){ flags->enemy_Path_Calculation = true; pushList((void*)flags->towerList,tower); drawTower(tower); } } break; default: break; } return isInPlay; }
void drawItem() { if (item) { drawRange((*item)); drawTower((*item)); } }