Window::Window(QWidget *parent) { chek = false; quadro = new Board(0); if(quadro == NULL){ qDebug() << "quadro Falhou!"; chek = true; }else{ qDebug() << "quadro Sucesso!"; } layout = new QGridLayout; if(layout == NULL){ qDebug() << "layout Falhou!"; chek = true; }else{ qDebug() << "layout Sucesso!"; } file = new QFile(); if(file == NULL){ qDebug() << "file Falhou!"; chek = true; }else{ qDebug() << "file Sucesso!"; } lcdLevel = new QLCDNumber(); if(lcdLevel == NULL){ qDebug() << "lcdLevel Falhou!"; chek = true; }else{ qDebug() << "lcdLevel Sucesso!"; } lcdScore = new QLCDNumber(); if(lcdScore == NULL){ qDebug() << "lcdScore Falhou!"; chek = true; }else{ qDebug() << "lcdScore Sucesso!"; } labelLevel = new QLabel("Level:",this); if(labelLevel == NULL){ qDebug() << "labelLevel Falhou!"; chek = true; }else{ qDebug() << "labelLevel Sucesso!"; } labelScore = new QLabel("Score:",this); if(labelScore == NULL){ qDebug() << "labelScore Falhou!"; chek = true; }else{ qDebug() << "labelScore Sucesso!"; } labelLife = new QLabel("Vida:",this); if(labelLife == NULL){ qDebug() << "labelLife Falhou!"; chek = true; }else{ qDebug() << "labelLife Sucesso!"; } botaoStart = new QPushButton("Start"); if(botaoStart == NULL){ qDebug() << "botaoStart Falhou!"; chek = true; }else{ qDebug() << "botaoStart Sucesso!"; } botaoPause = new QPushButton("Pause"); if(botaoPause == NULL){ qDebug() << "botaoPause Falhou!"; chek = true; }else{ qDebug() << "botaoPause Sucesso!"; } botaoReset = new QPushButton("Reset"); if(botaoReset == NULL){ qDebug() << "botaoReset Falhou!"; chek = true; }else{ qDebug() << "botaoReset Sucesso!"; } menuBar = new QMenuBar; if(menuBar == NULL){ qDebug() << "menuBar Falhou!"; chek = true; }else{ qDebug() << "menuBar Sucesso!"; } fileMenu = new QMenu(tr("&File"), this); if(fileMenu == NULL){ qDebug() << "fileMenu Falhou!"; chek = true; }else{ qDebug() << "fileMenu Sucesso!"; } barraProgresso = new QProgressBar(); if(barraProgresso == NULL){ qDebug() << "barraProgresso Falhou!"; chek = true; }else{ qDebug() << "barraProgresso Sucesso!"; } barraVida = new QProgressBar(); if(barraVida == NULL){ qDebug() << "barraVida Falhou!"; chek = true; }else{ qDebug() << "barraVida Sucesso!"; } tempo = new QTimer(this); if(tempo == NULL){ qDebug() << "tempo Falhou!"; chek = true; }else{ qDebug() << "tempo Sucesso!"; } contadorBarra = 1; baseScore =5; tamInicioBarra = 0; tamFimBarra = baseScore; barraVida->setMaximum(3); contadorVida = 0; aboutAct = new QAction(tr("&About"), this); if(aboutAct == NULL){ qDebug() << "aboutAct Falhou!"; chek = true; }else{ qDebug() << "aboutAct Sucesso!"; } aboutAct->setStatusTip(tr("Show the application's About box")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); connect(botaoStart, SIGNAL(clicked()), quadro, SLOT(inicio())); connect(botaoPause, SIGNAL(clicked()), quadro, SLOT(pausa())); connect(botaoReset, SIGNAL(clicked()), quadro, SLOT(reset())); connect(quadro, SIGNAL(nivelDificuldade(int)), lcdLevel, SLOT(display(int))); connect(quadro, SIGNAL(pontosGanho(int)), lcdScore, SLOT(display(int))); connect(quadro, SIGNAL(barra_Progresso()), this, SLOT(barraDeProgresso())); connect(quadro, SIGNAL(barra_Vida()), this, SLOT(barraDeVida())); connect(quadro, SIGNAL(sinalReset()), this, SLOT(resetJogo())); connect(quadro, SIGNAL(salvaScore()), this, SLOT(save())); this->resize(304,400); this->setMaximumSize(304,400); quadro->setMinimumSize(104,200); quadro->setMaximumSize(304,400); createMenu(); layout->addWidget(menuBar); layout->addWidget(quadro,3,0,10,3); layout->addWidget(labelLevel, 3, 4); layout->addWidget(lcdLevel,4,4); layout->addWidget(labelScore, 5,4); layout->addWidget(lcdScore,6,4); layout->addWidget(botaoStart,7,4); layout->addWidget(botaoPause,8,4); layout->addWidget(botaoReset,9,4); layout->addWidget(barraProgresso); layout->addWidget(labelLife); layout->addWidget(barraVida); this->setLayout(layout); this->show(); if(chek == true) { falhaCritica(); } }
void Board::timerEvent(QTimerEvent *event) { saveSocore = score; //atribui o valor de score para salvar em arquivo QSound som("Media/Speech On.wav"); if(pos_x <0 || pos_x > 200 || pos_y < 0 || pos_y > 296){ //Checa se o nake bateu nas bordas this->update(); fimJogo(); }else{ switch(direcao){ case 1: pos_x = pos_x - veloc; break; case 2: pos_x = pos_x + veloc; break; case 3: pos_y = pos_y - veloc; break; case 4: pos_y = pos_y + veloc; break; } if(pos_x >= 0 && pos_x <= 200 && pos_y >=0 && pos_y < 297){ //Checa se o Snake não bateu nas bordas this->update(); } //Colisão da Snake com a maçã quando a direçao do Snake for para esquerda if(direcao==1 && (pos_x + veloc) == (maca_x)&& (pos_y == maca_y)){ score = score +1; tamSnake++; //variável que determia o tamnho do corpo do Snake som.play(); posicaoMaca(); emit pontosGanho(score); emit barra_Progresso(); } //Colisão da Snake com a maçã quando a direçao do Snake for para direita if(direcao==2 && pos_x == (maca_x + veloc) && (pos_y == maca_y ) ){ score = score +1; tamSnake++; som.play(); posicaoMaca(); emit pontosGanho(score); emit barra_Progresso(); } //Colisão da Snake com a maçã quando a direçao do Snake for para cima if(direcao==3 && (pos_y + veloc) == (maca_y)&& (pos_x == maca_x)){ score = score +1; tamSnake++; som.play(); posicaoMaca(); emit pontosGanho(score); emit barra_Progresso(); } //Colisão da Snake com a maçã quando a direçao do Snake for para baico if(direcao==4 && (pos_y) == (maca_y + veloc)&& (pos_x == maca_x)){ score = score +1; tamSnake++; som.play(); posicaoMaca(); emit pontosGanho(score); emit barra_Progresso(); } } colisaoSanke(); vetorSnakeX.push_front(pos_x); //Cria o corpo do Snake vetorSnakeY.push_front(pos_y); //Cria o corpo do Snake //Apaga o corpo do Snake até o limite do tamanho do Snake while(vetorSnakeX.size() > tamSnake){ vetorSnakeX.pop_back(); vetorSnakeY.pop_back(); } if(score == gameOver){ fimJogo(); }else{ incrementaLevel(); } }