11 #include <QMessageBox> 12 #include <QAbstractButton> 13 #include <QPushButton> 19 #define RAD_TO_DEG 57.2957795 24 srand( time( NULL ) );
35 player =
new QMediaPlayer(
this,QMediaPlayer::LowLatency);
39 _scene =
new QGraphicsScene(
this);
88 QMessageBox::warning(
this,tr(
"Błąd odczytu danych"),tr(
"Błąd wczytywania danych semestrów. Sprawdź pliki i uruchom grę ponownie."));
132 msgBox.setIconPixmap(QPixmap(
":/icons/biret.png"));
133 msgBox.setWindowTitle(tr(
"Koniec"));
134 msgBox.setText(tr(
"Gratulacje! Udało Ci się przetrwać i zostać prawdziwym robotykiem ;-)"));
136 QPushButton *close = msgBox.addButton(tr(
"Zamknij grę"), QMessageBox::ActionRole);
137 QPushButton *newGame = msgBox.addButton(tr(
"Nowa gra"), QMessageBox::ActionRole);
141 if (msgBox.clickedButton() == newGame) {
144 else if (msgBox.clickedButton() == close) {
153 move.
Y = -data.
X_XL / 100;
154 move.
X = data.
Y_XL / 80;
198 setBackgroundBrush(QBrush(QColor(
"white")));
201 setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
202 setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
239 player->setMedia(QUrl(
"qrc:/sounds/chose.wav"));
243 msgBox.setIcon(QMessageBox::Question);
244 msgBox.setWindowTitle(tr(
"Przekroczono deficyt"));
245 msgBox.setText(tr(
"Przekroczyłeś deficyt punktów. Co chcesz teraz zrobić?"));
247 QPushButton *close = msgBox.addButton(tr(
"Zamknij grę"), QMessageBox::ActionRole);
248 QPushButton *deansLeave = msgBox.addButton(tr(
"Dziekanka"), QMessageBox::ActionRole);
249 QPushButton *newGame = msgBox.addButton(tr(
"Nowa gra"), QMessageBox::ActionRole);
253 if (msgBox.clickedButton() == newGame) {
255 }
else if (msgBox.clickedButton() == deansLeave) {
260 }
else if (msgBox.clickedButton() == close) {
268 msgBox.setIcon(QMessageBox::Critical);
269 msgBox.setWindowTitle(tr(
"Koniec"));
270 msgBox.setText(tr(
"Przekroczyłeś deficyt punktów, już na pierwszym semestrze. Musisz zacząć od nowa lub zrezygnować"));
272 QPushButton *close = msgBox.addButton(tr(
"Zamknij grę"), QMessageBox::ActionRole);
273 QPushButton *newGame = msgBox.addButton(tr(
"Nowa gra"), QMessageBox::ActionRole);
277 if (msgBox.clickedButton() == newGame) {
280 else if (msgBox.clickedButton() == close) {
288 msgBox.setIcon(QMessageBox::Critical);
289 msgBox.setWindowTitle(tr(
"Koniec"));
290 msgBox.setText(tr(
"Niestety dołączyłeś do grupy poległych na placu boju :-( Ale historia nigdy o Tobie nie zapomni..."));
292 QPushButton *close = msgBox.addButton(tr(
"Zamknij grę"), QMessageBox::ActionRole);
293 QPushButton *newGame = msgBox.addButton(tr(
"Nowa gra"), QMessageBox::ActionRole);
297 if (msgBox.clickedButton() == newGame) {
300 else if (msgBox.clickedButton() == close) {
308 player->setMedia(QUrl(
"qrc:/sounds/round.wav"));
314 player->setMedia(QUrl(
"qrc:/sounds/end.wav"));
void on_MainWindow_inicializeNewGame()
Reaguje na sygnał potrzeby inicjalizacji nowej gry.
void stopStudent()
Zatrzymuje studenta w miejscu.
int Y_XL
Wartość przyspieszenia na osi Y akcelerometru (mg)
qreal Y
Wartość osi Y o ile trzeba przesunąć studenta.
void playEndMusic()
Odtwarza muzykę końca gry.
QTimer * _timerMove
Uchwyt do timera przesuwającego kursy.
void on_Courses_increaseDeficit(int ECTS)
Zwiększa liczbę punktów deficytu.
void on_Courses_gameFinished()
Wyświetla końcowy komunikat w przypadku powodzenia gry.
void changeButtonToStart()
Sygnał zmiany napisu na przyciusku start.
int X_XL
Wartość przyspieszenia na osi X akcelerometru (mg)
void on_Courses_changeTerm(int term)
Zmienia numer aktualnego semestru.
int _deansLeave
Liczba wzietych urlopów dziekańskich.
Dane przesunięcia studenta.
int _term
Aktualny semestr studiów.
void connectCourses()
Łączy wszystkie sloty i sygnały związane z kursami.
void on_Courses_checkDeficitOverstep()
Sprawdza przekroczenie deficytu.
void resetPosition()
Ustawienie studenta do pozycji początkowej.
void on_Courses_decreaseDeficit(int ECTS)
Zmniejsza liczbę punktów deficytu.
void closeGame()
Sygnał zamknięcia gry.
Courses * _courses
Uchwyt do kursów.
void playStartingMusic()
Odtwarza początkową muzykę
void deficitOversteped()
Obsługuje przekroczenie deficytu punków ECTS.
Student * _student
Uchwyt do studenta.
void createNewGame()
Generuje nową grę
QMediaPlayer * player
Odtwarzacz muzyki.
Game(QWidget *parent=0)
Konstruktor klasy Game.
Modeuje pojęcie Studenta.
Surowe dane otrzymane z kontrolera (płytki)
GameSettings * gameSettings
Globalne ustawienia gry.
QGraphicsScene * _scene
Uchwyt do sceny.
void moveStudent(moveData data)
Poruszanie studenta po scenie.
int sceneHeight
Wysokość sceny (okienka z grą)
void on_Courses_increaseECTS(int ECTS)
Zwiększa liczbę sumy punktów ECTS.
int deficitLimit
Maksymalny deficyt punktów ECTS.
void startStudent()
Odblokowuje studenta.
void startTimers()
Zatrzymuje wszystkie timery.
void changeTerm(int term)
Zmienia wartość numeru semestru.
QList< QList< Course * > * > getAllTerms()
Umożliwa dostęp do wszystkich semestrów.
void setupScene()
Ustawia scenę gry.
void on_startGame_clicked()
Obsługuje naciśnięcie przycisu rozpoczęcia gry.
void stopTimers()
Startuje wszystkie timery.
void changeDeansLeave(int number)
Zmienia wartość ilości dziekanek.
void on_stopGame_clicked()
Obsługuje naciśnięcie przycisu spauzowania gry.
Modeluje pojęcie Courses.
int _deficit
Deficyt punktowy.
void changeECTS(int ECTS)
Zmienia wartość punktów ECTS.
qreal X
Wartość osi X o ile trzeba przesunąć studenta.
Definuje ustawienia gryModeluje pojęcie ustawień gry, jako struktura odpowiednich pól...
int _ECTS
Suma zdobytych punktów ECTS.
void newDataArrived(rawData data)
Obsługuje przyjścienowych danych z czujników.
void on_Courses_failedToReadData()
Obsługuje błąd odczytu plików semestrów.
QTimer * _timerCourses
Uchwyt do timera generujacego kursy.
bool _gameStarted
Flaga wystartowania gry.
int sceneWidth
Szerokość sceny (okienka z grą)
void connectStudent()
Łączy wszystkie sloty i sygnały związane ze studentem.
void changeDeficit(int ECTS)
Zmienia wartość deficytu.
int speed
Skalowanie szybkości gry (1-10)