// Paint reimplementation void StateComboBoxItemDelegate::paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const { // Current value text QString valueString = index.model()->data(index, Qt::DisplayRole).toString(); //Check if index is in "bold text" list /* if (this->boldTextIndexesList.isEmpty() || !this->boldTextIndexesList.contains(index.row())) { QItemDelegate::paint (painter, option, index); } else */ { //Save current state painter->save(); // Set the "bold" flag for the font depending on the index QFont activeFont = painter->font(); activeFont.setBold(this->boldTextIndexesList.contains(index.row())); painter->setFont(activeFont); //Get position of item QRect point = option.rect; //Shift to right from left border point.setX(point.x() + 5); if (option.state & QStyle::State_Selected) { //Highlight text painter->fillRect(option.rect, option.palette.highlight()); //Set white color for selected text QPen penHText(Qt::white); painter->setPen(penHText); } else { //Set black color for non-selected text QPen penHText(Qt::black); painter->setPen(penHText); } //Draw text painter->drawText(point, Qt::AlignLeft | Qt::TextSingleLine, valueString); //Restore painter state painter->restore(); } }
void Game::paintEvent(QPaintEvent *event) { QPainter painter(this); if(cover->isON()==true)//cover on the begining with instructions painter.drawImage(cover->getRect(), cover->getImage()); if (gameOver) {//print gameover message when all lives lost QFont font("Courier", 15, QFont::DemiBold); QFontMetrics fm(font); int textWidth = fm.width("Game Over"); painter.setFont(font); int h = height(); int w = width(); QPen penText(QColor("#00e0fc"));// drawn using this color painter.setPen(penText); painter.translate(QPoint(w/2, h/2)); painter.drawText(-textWidth/2, 0, "Game Over"); } else if(gameWon) {//prints win message when 6 gets 7 QFont font("Courier", 15, QFont::DemiBold); QFontMetrics fm(font); int textWidth = fm.width("YOU WON :D"); painter.setFont(font); int h = height(); int w = width(); QPen penHText(QColor("#990000")); painter.setPen(penHText); painter.translate(QPoint(w/2, h/2)); painter.drawText(-textWidth/2, 0, "YOU WON :D"); painter.drawText(-100,100 ,"score->"); scores.setNum(score); painter.drawText(100,100 ,scores); } else if(cover->isON()==false&&level1==true&&gameOver==false){//still playing the game so all objecst are draw in current position painter.drawImage(port1->getRect(),port1->getImage(1)); painter.drawImage(port2->getRect(),port2->getImage(1)); painter.drawImage(port3->getRect(),port3->getImage(1)); painter.drawImage(port4->getRect(),port4->getImage(1)); painter.drawImage(port5->getRect(),port5->getImage(1)); painter.drawImage(door->getRect(), door->getImage(1)); painter.drawImage(nj->getRect(), nj->getImage()); painter.drawImage(nj2->getRect(), nj2->getImage()); painter.drawImage(nj3->getRect(), nj3->getImage()); painter.drawImage(block->getRect(), block->getImage()); painter.drawImage(six->getRect(), six->getImage(step)); painter.drawImage(lazer->getRect(), lazer->getImage(0)); painter.drawImage(lazer2->getRect(), lazer2->getImage(0)); painter.drawImage(lazer3->getRect(), lazer3->getImage(0)); painter.drawImage(lazer4->getRect(), lazer4->getImage(0)); painter.drawImage(lazer5->getRect(), lazer5->getImage(0)); painter.drawImage(lazer6->getRect(),lazer6->getImage(0)); painter.drawImage(lwall2->getRect(),lwall->getImage()); painter.drawImage(L->getRect(), L->getImage()); painter.drawImage(lastwall->getRect(), lastwall->getImage()); painter.drawImage(lazerl->getRect(), lazerl->getImage(0)); painter.drawImage(psych->getRect(), psych->getImage()); //painter.drawImage(seven->getRect(), seven->getImage()); painter.drawImage(blade->getRect(), blade->getImage()); painter.drawImage(blade2->getRect(), blade2->getImage()); painter.drawImage(blade3->getRect(), blade3->getImage()); if(!bomb1->boom()==true) painter.drawImage(bomb1->getRect(), bomb1->getImage(0)); if(!bomb2->boom()==true) painter.drawImage(bomb2->getRect(), bomb2->getImage(0)); if(!bomb3->boom()==true) painter.drawImage(bomb3->getRect(), bomb3->getImage(0)); painter.drawImage(lwall->getRect(), lwall->getImage()); } //paints second level else if(cover->isON()==false&&level2==true&&gameOver==false){ painter.drawImage(port1->getRect(),port1->getImage(1)); painter.drawImage(port1->getRect(),port1->getImage(1)); int y = six->getRect().y(); int x = six->getRect().x(); int a = eye1->getRect().left()+(eye1->getRect().width()/2); int b = eye1->getRect().top()+(eye1->getRect().height()/2); int c = eye2->getRect().left()+(eye2->getRect().width()/2); int d = eye2->getRect().top()+(eye2->getRect().height()/2); int e = eye3->getRect().left()+(eye3->getRect().width()/2); int f = eye3->getRect().top()+(eye3->getRect().height()/2); QPoint me(six->getRect().top(),six->getRect().left()); QPoint first(280,425); QPoint second(c,d); QPoint third(e,f); if(ouch1==false)//if not already destroyed sight1= eye1->getQUAD(x,y);//finds the pic to make i look in 6s direction else if(me==first) {sight1=9;key=true;} else {sight1=100;key=true;} if(ouch2==false) sight2= eye2->getQUAD(x,y); else if(me==second) sight2=9; else sight2=12; if(ouch3==false) sight3= eye3->getQUAD(x,y); else if(me==third) sight3=9; else sight3=64; if(ouch4==false) sight4= eye4->getQUAD(x,y); else sight4=9; if(ouch5==false) sight5= eye5->getQUAD(x,y); else sight5=9; painter.drawImage(six->getRect(), six->getImage(step)); painter.drawImage(ninja->getRect(), ninja->getImage(stip)); painter.drawImage(ninja2->getRect(), ninja2->getImage(stip)); for (int i=0; i<45; i++) { painter.drawImage(bricks[i]->getRect(), bricks[i]->getImage()); } //shoots the acid from each eyeball if(ouch1==false) painter.drawImage(bleh1->getRect(), bleh1->getImage()); if(ouch2==false) painter.drawImage(bleh2->getRect(), bleh2->getImage()); if(ouch3==false) painter.drawImage(bleh3->getRect(), bleh3->getImage()); if(ouch4==false) painter.drawImage(bleh4->getRect(), bleh4->getImage()); if(ouch5==false) painter.drawImage(bleh5->getRect(), bleh5->getImage()); //then draw eyes on top painter.drawImage(eye1->getRect(), eye1->getImage2(sight1)); painter.drawImage(eye2->getRect(), eye2->getImage2(sight2)); painter.drawImage(eye3->getRect(), eye3->getImage2(sight3)); painter.drawImage(eye4->getRect(), eye4->getImage2(sight4)); painter.drawImage(eye5->getRect(), eye5->getImage2(sight5)); } //third level with piano guy if(cover->isON()==false&&level3==true&&gameOver==false){ //move to bottom of screen to start this level /* painter.drawImage(side1->getRect(),side1->getImage()); painter.drawImage(side2->getRect(),side2->getImage(0)); painter.drawImage(side3->getRect(),side3->getImage());*/ painter.drawImage(man->getRect(),man->getImage(throwy,0)); painter.drawImage(port2->getRect(),port2->getImage(1)); //painter.drawImage(portsiete->getRect(),portsiete->getImage(1));&&&&&& painter.drawImage(portskull->getRect(),portskull->getImage(1)); painter.drawImage(cloud1->getRect(),cloud1->getImage()); painter.drawImage(cloud5->getRect(),cloud5->getImage()); painter.drawImage(cloud3->getRect(),cloud3->getImage()); //draw all the clouds painter.drawImage(six->getRect(), six->getImage(step)); painter.drawImage(cloud2->getRect(),cloud2->getImage()); painter.drawImage(bolt->getRect(), bolt->getImage());//bolt painted painter.drawImage(cloud4->getRect(),cloud4->getImage()); painter.drawImage(cloud6->getRect(),cloud6->getImage()); //draw three walls and man //draw piano where ever it be painter.drawImage(piano->getRect(),piano->getImage()); //three portals that lead back to siete or skull door } if(final==true&&gameOver==false&&cover->isON()==false&&gameWon==false) { int sight64; int y = six->getRect().y(); int x = six->getRect().x(); int c = aye->getRect().left()+(aye->getRect().width()/2); int d = aye->getRect().top()+(aye->getRect().height()/2); painter.drawImage(bg->getRect(), bg->getImage(stip)); //draw background and animate flames painter.drawImage(bolt->getRect(), bolt->getImage()); if(ouche==false)//if not already destroyed { sight64= aye->getQUAD(x,y); painter.drawImage(aye->getRect(), aye->getImage2(sight64)); //painter.drawImage(blak->getRect(), blak->getImage()); this eye is harmless } else painter.drawImage(aye->getRect(), aye->getImage2(9)); painter.drawImage(six->getRect(), six->getImage(step)); painter.drawImage(seven->getRect(),seven->getImage()); } if(level7==true&&gameOver==false){ int diologue; if(dio<=100) painter.drawImage(siete->getRect(), siete->getImage(1,stip)); else if(dio<=200) painter.drawImage(siete->getRect(), siete->getImage(2,stip)); else painter.drawImage(siete->getRect(), siete->getImage(3,stip)); painter.drawImage(portsiete->getRect(), portsiete->getImage(1)); //portal painter.drawImage(six->getRect(), six->getImage(step)); if((six->getRect()).intersects(portsiete->getRect())){level7=false;level3=true; six->resetState(1000,550); } } //print score------------------------------- QFont font("Arial", 20, QFont::DemiBold); QFontMetrics fm(font); int textWidth = fm.width("LIVES"); painter.setFont(font); QPen penText(QColor("#FFFFFF"));// drawn using this color painter.setPen(penText); //place at bottom of screen painter.translate(QPoint(100, 650)); painter.drawText(-textWidth/2, 0, "LIVES"); QPen penT(QColor("#00e0fc")); painter.setPen(penT); life.setNum(lives); painter.drawText(100, 0 , life); if(lives>=0){ QFont font("Arial", 20, QFont::DemiBold); QFontMetrics fm(font); int textWidth = fm.width(" COOL POINTS"); painter.setFont(font); QPen penText(QColor("#FFFFFF"));// drawn using this color painter.setPen(penText); painter.translate(QPoint(500, 0)); painter.drawText(-textWidth/2, 0, "COOL POINTS"); QPen penT(QColor("#00e0fc")); painter.setPen(penT); scores.setNum(score); painter.drawText(100,0 ,scores); } }