void Pong::drawScores(int s1, int s2) { CL_FontDescription scoreFont_desc; scoreFont_desc.set_typeface_name("Verdana"); scoreFont_desc.set_height(80); CL_Font_System scoreFont(app->getGC(), scoreFont_desc); TGString txt = TGString(s1) + " : " + s2; CL_Size scoreSize = scoreFont.get_text_size(app->getGC(), txt); CL_Pointf scoreLeftPos((Application::x_res - scoreSize.width) / 2, scoreSize.height); scoreFont.draw_text(app->getGC(), scoreLeftPos, txt, CL_Colorf::black); }
void Bakoom::paintEvent(QPaintEvent *event) { QPainter painter(this); if(gameOver_) { QFont font("Arial", 10, QFont::DemiBold); int text_x = 0; int text_y = windowHeight/4; painter.setFont(font); painter.setPen(Qt::white); painter.drawText(text_x,text_y,windowWidth,16,Qt::AlignCenter,"You were eaten alive by the Bruins :-("); text_y += 70; painter.drawText(text_x,text_y,windowWidth,16,Qt::AlignCenter,"Final score: " + QString::number(score)); text_y += 70; painter.drawText(text_x,text_y,windowWidth,16,Qt::AlignCenter,"Press [R] to Restart"); text_y += 70; painter.drawText(text_x,text_y,windowWidth,16,Qt::AlignCenter,"(You keep your stuff)"); } else { QRect healthRect, powerRect; QFont scoreFont("Arial", 8, QFont::Normal); QFont noAmmo("Arial",16, QFont::Normal); // draw scenery for(int i = 0; i < scenery_.size(); i++) painter.drawImage(scenery_.at(i)->getRect(), scenery_.at(i)->getImage()); // draw enemies and enemy health for(int i = 0; i < enemies_.size(); i++) { painter.drawImage(enemies_.at(i)->getRect(), enemies_.at(i)->getImage()); healthRect.setX(enemies_.at(i)->getRect().x()); healthRect.setY(enemies_.at(i)->getRect().y()-15); healthRect.setWidth(enemies_.at(i)->getRect().width()); healthRect.setHeight(8); painter.setBrush(Qt::NoBrush); painter.setPen(enemies_.at(i)->getHealthBarBorderColor()); painter.drawRect(healthRect); healthRect.setWidth(enemies_.at(i)->getRect().width()*enemies_.at(i)->getHealth()/enemies_.at(i)->getMaxHealth()); painter.setBrush(enemies_.at(i)->getHealthBarColor()); painter.setPen(Qt::NoPen); painter.drawRect(healthRect); } // draw medipaks for(int i = 0; i < medipaks_.size(); i++) painter.drawImage(medipaks_.at(i)->getRect(), medipaks_.at(i)->getImage()); // draw credits for(int i = 0; i < credits_.size(); i++) painter.drawImage(credits_.at(i)->getRect(), credits_.at(i)->getImage()); // draw projectiles for(int i = 0; i < projectiles_.size(); i++) painter.drawImage(projectiles_.at(i)->getRect(), projectiles_.at(i)->getImage()); // draw player painter.drawImage(player_ ->getRect(), player_ ->getImage()); // draw bubble shield if(bubbleShield_->isActivated()) painter.drawImage(QRect(player_ ->getRect().x()-18, player_ ->getRect().y()-25, bubbleShield_->getRect().width(), bubbleShield_->getRect().height()), bubbleShield_->getImage()); // draw score, credits, ammo painter.setFont(scoreFont); painter.setPen(Qt::white); painter.drawText(10,10,200,16,Qt::AlignLeft,"Score: " + QString::number(score)); painter.setPen(Qt::yellow); painter.drawText(10,24,200,16,Qt::AlignLeft,"Credits: " + QString::number(credits)); if(ammunition_[currentWeapon_] > 0) painter.setPen(Qt::white); else painter.setPen(Qt::red); painter.drawText(10,38,200,16,Qt::AlignLeft,"Ammo: " + QString::number(ammunition_[currentWeapon_])); // draw NO AMMO message if(ammunition_[currentWeapon_] <= 0 && clock() % 100 < 50) { painter.setFont(noAmmo); painter.setPen(Qt::red); painter.drawText(0,windowHeight/2,windowWidth,30,Qt::AlignCenter,"NO AMMO! SWITCH WEAPONS!"); } // draw player health healthRect.setX(windowWidth-206); healthRect.setY(10); healthRect.setWidth(196); healthRect.setHeight(24); painter.setBrush(Qt::NoBrush); painter.setPen(player_ ->getHealthBarBorderColor()); painter.drawRect(healthRect); healthRect.setWidth(196*player_ ->getHealth()/player_ ->getMaxHealth()); painter.setBrush(player_ ->getHealthBarColor()); painter.setPen(Qt::NoPen); painter.drawRect(healthRect); // draw player power powerRect.setX(windowWidth-206); powerRect.setY(36); powerRect.setWidth(196); powerRect.setHeight(8); painter.setBrush(Qt::NoBrush); painter.setPen(player_ ->getPowerBarBorderColor()); painter.drawRect(powerRect); powerRect.setWidth(196*player_ ->getPower()/player_ ->getMaxPower()); painter.setBrush(player_ ->getPowerBarColor()); painter.setPen(Qt::NoPen); painter.drawRect(powerRect); // draw lower UI painter.setBrush(Qt::gray); painter.drawRect(0,windowHeight-lowerUIHeight,windowWidth,lowerUIHeight); // draw weapon icons int icon_x = 10; int icon_y = windowHeight-lowerUIHeight+10; int offset = 40; painter.drawImage(icon_x,icon_y,QImage(":img/icon_bullet450SMC.png")); if(currentWeapon_ == 0) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[1]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_bullet25mm.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 1) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[5]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_redLaser.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 5) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[6]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_yellowLaser.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 6) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[7]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_blueLaser.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 7) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[9]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_hydraMissile.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 9) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[10]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_miniNuke.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 10) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[13]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_plasmaSpike.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 13) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[14]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_plasmaBomb.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 14) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[18]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_teslaCoil.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 18) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; if(hasItem[19]) painter.drawImage(icon_x,icon_y,QImage(":img/icon_railgun.png")); else painter.drawImage(icon_x,icon_y,QImage(":img/icon_locked.png")); if(currentWeapon_ == 19) painter.drawImage(icon_x,icon_y,QImage(":img/icon_selection.png")); icon_x += offset; } }