42 int width = screenSize.width(); |
41 int width = screenSize.width(); |
43 mazeImage = mazeImage.scaledToWidth(width); |
42 mazeImage = mazeImage.scaledToWidth(width); |
44 QGraphicsPixmapItem *backGround = mScene->addPixmap(mazeImage); |
43 QGraphicsPixmapItem *backGround = mScene->addPixmap(mazeImage); |
45 backGround->setPos(-140,-200); |
44 backGround->setPos(-140,-200); |
46 |
45 |
|
46 mPacCollider = new QGraphicsEllipseItem(0, 0, 18, 18); |
|
47 mPacCollider->setBrush(QBrush(Qt::transparent)); |
|
48 mScene->addItem(mPacCollider); |
|
49 |
47 mPacman = new QGraphicsEllipseItem(0, 0, 18, 18); |
50 mPacman = new QGraphicsEllipseItem(0, 0, 18, 18); |
48 mPacman->setBrush(QBrush(Qt::yellow)); |
51 mPacman->setBrush(QBrush(Qt::yellow)); |
49 mPacman->setSpanAngle(4500); |
52 mPacman->setSpanAngle(4500); |
50 mScene->addItem(mPacman); |
53 mScene->addItem(mPacman); |
|
54 |
|
55 |
51 |
56 |
52 // lets place a pause button in the view |
57 // lets place a pause button in the view |
53 pauseButton = new QPushButton("Pause"); |
58 pauseButton = new QPushButton("Pause"); |
54 connect(pauseButton, SIGNAL(clicked()), this, SLOT(pause())); |
59 connect(pauseButton, SIGNAL(clicked()), this, SLOT(pause())); |
55 pauseButton->setMaximumHeight(40); |
60 pauseButton->setMaximumHeight(40); |
58 |
63 |
59 ui->mainGraphicsView->setScene(mScene); |
64 ui->mainGraphicsView->setScene(mScene); |
60 ui->mainGraphicsView->show(); |
65 ui->mainGraphicsView->show(); |
61 |
66 |
62 mPacman->setPos(20,-8); |
67 mPacman->setPos(20,-8); |
63 |
68 mPacCollider->setPos(20, -8); |
64 // declare our update timer |
69 // declare our update timer |
65 mUpdateTimer = new QTimer(this); |
70 mUpdateTimer = new QTimer(this); |
66 connect(mUpdateTimer, SIGNAL(timeout()), this, SLOT(updateGraphics())); |
71 connect(mUpdateTimer, SIGNAL(timeout()), this, SLOT(updateGraphics())); |
67 mUpdateTimer->start(250); |
72 mUpdateTimer->start(250); |
68 |
73 |
69 // connect the accelerometer to the readingChanged signal |
74 // connect the accelerometer to the readingChanged signal |
70 connect(mAccelerometer, SIGNAL(readingChanged()), this, SLOT(updateReading())); |
75 connect(mAccelerometer, SIGNAL(readingChanged()), this, SLOT(updateReading())); |
71 mNumHits = 1; |
76 mNumHits = 1; |
|
77 |
72 } |
78 } |
73 |
79 |
74 MainWindow::~MainWindow() |
80 MainWindow::~MainWindow() |
75 { |
81 { |
76 delete ui; |
82 delete ui; |
99 } |
104 } |
100 |
105 |
101 mPacState += 1; |
106 mPacState += 1; |
102 if (mPacState == 2) |
107 if (mPacState == 2) |
103 mPacState = 0; |
108 mPacState = 0; |
|
109 |
104 } |
110 } |
105 |
111 |
106 void MainWindow::updateReading() { |
112 void MainWindow::updateReading() { |
107 if (mPause) |
113 if (mPause) |
108 return; |
114 return; |
109 mNumHits = mPacman->collidingItems().count(); |
115 |
110 if (mNumHits == 1) |
116 checkCollisions(); |
111 mLastPt = mPacman->pos(); |
|
112 xAxis = (xAxis + mAccelerometer->reading()->x()) / 2; |
117 xAxis = (xAxis + mAccelerometer->reading()->x()) / 2; |
113 yAxis = (yAxis + mAccelerometer->reading()->y()) / 2; |
118 yAxis = (yAxis + mAccelerometer->reading()->y()) / 2; |
114 |
119 |
115 QPointF pt = mPacman->pos(); |
120 } |
|
121 |
|
122 void MainWindow::checkCollisions() { |
|
123 |
|
124 mNumHits = mPacCollider->collidingItems().count(); |
|
125 if (mNumHits == 2) |
|
126 mLastPt = mPacCollider->pos(); |
|
127 |
|
128 QPointF pt = mPacCollider->pos(); |
116 |
129 |
117 pt.setX(pt.x()-xAxis); |
130 pt.setX(pt.x()-xAxis); |
118 pt.setY(pt.y()+yAxis); |
131 pt.setY(pt.y()+yAxis); |
119 |
132 |
120 if (pt.x()<-103) |
133 if (pt.x()<-103) |
121 pt.setX(-103); |
134 pt.setX(-103); |
122 else if (pt.x()>180) |
135 else if (pt.x()>180) |
123 pt.setX(180); |
136 pt.setX(180); |