ARRka  1.05
course.cpp
Idź do dokumentacji tego pliku.
1 
8 #include "inc/course.h"
9 #include <cstdlib>
10 #include <QTimer>
11 #include "inc/game.h"
12 #include <QGraphicsScene>
13 #include <QList>
14 #include <QDebug>
15 
16 Course::Course(GameSettings *gSettings, int nOE, QString name, int tN, QObject *parent)
17  : QObject(parent), _numberOfECTS(nOE), _courseName(name), _termNumber(tN)
18 {
19  _onceMore = false; //kurs nie jest realizowany ponownie
20  _gameSettings=gSettings; //przypisz ustawienia globalne gry
21  //ustawienia wielkości kursu i jego pozycji
22  if(_numberOfECTS < 6 && _numberOfECTS > 2)
24  else if (_numberOfECTS <=2)
26  else if (_numberOfECTS > 8 && _numberOfECTS <= 10)
28  else if (_numberOfECTS > 10)
30  else
32  _courseHeight=50;
33 
34  setRandomPos();
35  setRect(0,0,_courseWidth,_courseHeight);
36  setBrush(QColor(153, 0, 0));//102, 51, 0
37 
38  //dodanie nazwy kursu
39  QGraphicsTextItem * courseName = new QGraphicsTextItem(this);
40  courseName->setPlainText(name);
41  courseName->adjustSize();
42  courseName->setDefaultTextColor(QColor("white"));
43  courseName->setPos(0,_courseHeight/4);
44 }
45 
47 {
48 }
49 
51 {
52  //losowa liczba z zakresu od 0 do (wielkości okna - długość kursu)
53  int randomNumer = (rand() % ((int) (_gameSettings->sceneWidth - _courseWidth))) + 1;
54  setPos(randomNumer,0);
55 }
56 
58 {
59  int moveValue = 5;
60 
61  setPos(x(),y()+moveValue); //przesuń kurs w dół
62 
63  //znalezienie kolidujących elementów
64  QList <QGraphicsItem *> colliding_Items = collidingItems();
65  for (int i=0, size=colliding_Items.size(); i<size; ++i) {
66  if (typeid(*(colliding_Items[i])) == typeid(Student)) { //jeżeli Student koliduje z kursem
67  emit failedCourse(this);
68  return;
69  }
70  }
71 
72  // usunięcie kursu, gdy wyjdzie poza obraz(colliding_Items[i])
73  if (pos().y() > _gameSettings->sceneHeight + _courseHeight){
74  emit passedCourse(this);
75  }
76 }
GameSettings * _gameSettings
Lokalny uchwyt globalnych ustawień gry Lokalny uchwyt globalnych ustawień gry.
Definition: course.h:104
Definicja klasy Course.
qreal _courseHeight
Wysokośc kursu.
Definition: course.h:130
Definicja klasy Game.
void failedCourse(Course *pCourse)
Sygnał niezaliczenia kursu.
Modeuje pojęcie Studenta.
Definition: student.h:25
bool _onceMore
Flaga - czy kurs jest poprawiany.
Definition: course.h:138
~Course()
Desktruktor klasy Course.
Definition: course.cpp:46
int sceneHeight
Wysokość sceny (okienka z grą)
Definition: gamesettings.h:19
qreal _courseWidth
Szerokość kursu Szerokość kursu w pikselach.
Definition: course.h:124
void passedCourse(Course *pCourse)
Sygnał zdania kursu.
void move()
Definition: course.cpp:57
Course(GameSettings *gSettings, int nOE, QString name, int tN, QObject *parent=nullptr)
Konstruktor klasy Course.
Definition: course.cpp:16
Definuje ustawienia gryModeluje pojęcie ustawień gry, jako struktura odpowiednich pól...
Definition: gamesettings.h:17
int _numberOfECTS
Liczba punktów ECTS kursu Liczba punktów ECTS kursu.
Definition: course.h:109
int sceneWidth
Szerokość sceny (okienka z grą)
Definition: gamesettings.h:21
void setRandomPos()
Ustala losową pozycję kursu.
Definition: course.cpp:50