mirror of
https://github.com/modelec/ihm.git
synced 2026-01-18 16:47:32 +01:00
101 lines
3.0 KiB
C++
101 lines
3.0 KiB
C++
#include "InGame.h"
|
|
|
|
InGame::InGame(QWidget *parent) : QWidget(parent) {
|
|
this->mainLayout = new QVBoxLayout(this);
|
|
this->mainLayout->setAlignment(Qt::AlignCenter);
|
|
QPixmap bgPixmap(":/img/ISEN-Nantes.png");
|
|
bgPixmap = bgPixmap.scaled(this->size(), Qt::KeepAspectRatioByExpanding);
|
|
QPalette palette;
|
|
palette.setBrush(QPalette::Window, QBrush(bgPixmap));
|
|
this->setPalette(palette);
|
|
this->pts = new QLabel("Points : 0", this);
|
|
this->pts->setStyleSheet("font-size: 96px; color: black;");
|
|
this->x = new QLabel("X : 0", this);
|
|
this->x->setStyleSheet("font-size: 32px; color: black;");
|
|
this->y = new QLabel("Y : 0", this);
|
|
this->y->setStyleSheet("font-size: 32px; color: black;");
|
|
this->time = new QLabel("Time : 0m0s", this);
|
|
this->time->setStyleSheet("font-size: 32px; color: black;");
|
|
this->speed = new QLabel("Vitesse : 0", this);
|
|
this->speed->setStyleSheet("font-size: 32px; color: black;");
|
|
this->angle = new QLabel("Angle : 0", this);
|
|
this->angle->setStyleSheet("font-size: 32px; color: black;");
|
|
|
|
this->mainLayout->addWidget(pts);
|
|
|
|
this->posAndTimeLayout = new QHBoxLayout();
|
|
|
|
this->mainLayout->addLayout(this->posAndTimeLayout);
|
|
|
|
this->posAndTimeLayout->addWidget(time);
|
|
|
|
this->posLayout = new QVBoxLayout();
|
|
|
|
this->posLayout->addWidget(x);
|
|
this->posLayout->addWidget(y);
|
|
this->posLayout->addWidget(speed);
|
|
this->posLayout->addWidget(angle);
|
|
this->posLayout->setAlignment(Qt::AlignCenter);
|
|
|
|
this->posAndTimeLayout->addLayout(this->posLayout);
|
|
|
|
this->setLayout(mainLayout);
|
|
|
|
this->timer = new QTimer(this);
|
|
this->timer->setInterval(1000); // 1 second
|
|
connect(this->timer, &QTimer::timeout, this, &InGame::updateTime);
|
|
}
|
|
|
|
void InGame::updateScode() const
|
|
{
|
|
this->pts->setText("Points : " + QString::number(this->score));
|
|
}
|
|
|
|
void InGame::updatePos(const std::string& x, const std::string &y) const
|
|
{
|
|
this->x->setText("X : " + QString::fromStdString(x));
|
|
this->y->setText("Y : " + QString::fromStdString(y));
|
|
}
|
|
|
|
void InGame::updateSpeed(const std::string& speed) const
|
|
{
|
|
this->speed->setText("Vitesse : " + QString::fromStdString(speed));
|
|
}
|
|
|
|
void InGame::updateAngle(const std::string& angle) const
|
|
{
|
|
this->angle->setText("Angle : " + QString::fromStdString(angle));
|
|
}
|
|
|
|
|
|
void InGame::showEvent(QShowEvent* event)
|
|
{
|
|
QWidget::showEvent(event);
|
|
this->timer->start();
|
|
}
|
|
|
|
void InGame::updateTime()
|
|
{
|
|
this->timeCounter++;
|
|
int min = this->timeCounter / 60;
|
|
int sec = this->timeCounter % 60;
|
|
this->time->setText("Time : " + QString::number(min) + "m" + QString::number(sec) + "s");
|
|
emit askTCPServer("ihm;strat;get pos;1");
|
|
emit askTCPServer("ihm;strat;get speed;1");
|
|
emit askTCPServer("ihm;strat;get angle;1");
|
|
}
|
|
|
|
void InGame::stopTimer() const {
|
|
this->timer->stop();
|
|
}
|
|
|
|
void InGame::addScore(int score) {
|
|
this->score += score;
|
|
this->updateScode();
|
|
}
|
|
|
|
void InGame::setScore(int score) {
|
|
this->score = score;
|
|
this->updateScode();
|
|
}
|