Menu items in correct places again
[ghostsoverboard] / timercontrolledgraphicspixmapobject.cpp
index e6b838c..52fb616 100644 (file)
@@ -1,3 +1,25 @@
+/**************************************************************************
+        Ghosts Overboard - a game for Maemo 5
+
+        Copyright (C) 2011  Heli Hyvättinen
+
+        This file is part of Ghosts Overboard
+
+        Ghosts Overboard is free software: you can redistribute it and/or modify
+        it under the terms of the GNU General Public License as published by
+        the Free Software Foundation, either version 2 of the License, or
+        (at your option) any later version.
+
+        This program is distributed in the hope that it will be useful,
+        but WITHOUT ANY WARRANTY; without even the implied warranty of
+        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+        GNU General Public License for more details.
+
+        You should have received a copy of the GNU General Public License
+        along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+**************************************************************************/
+
 #include "timercontrolledgraphicspixmapobject.h"
 #include <QGraphicsScene>
 #include <QDebug>
@@ -7,13 +29,14 @@ TimerControlledGraphicsPixmapObject::TimerControlledGraphicsPixmapObject(QPixmap
     QObject(), QGraphicsPixmapItem(pixmap, parent)
 {
     setSpeed(speed);
-    direction_ = S;
+    changeDirection();
     connect(&timer_,SIGNAL(timeout()),this,SLOT(move()));
 }
 
 void TimerControlledGraphicsPixmapObject::startMoving()
 {
-    timer_.start();
+    if (!stoppedBecauseInvalidTime_)
+        timer_.start();
 }
 
 void TimerControlledGraphicsPixmapObject::stopMoving()
@@ -23,9 +46,17 @@ void TimerControlledGraphicsPixmapObject::stopMoving()
 
 void TimerControlledGraphicsPixmapObject::setSpeed(int speed)
 {
-    timer_.setInterval(1000/speed); //converts from pixels in second to milliseconds per pixel
+    if (speed >0)
+    {
+        timer_.setInterval(1000/speed); //converts from pixels in second to milliseconds per pixel
+        stoppedBecauseInvalidTime_ = false;
+     }
+    else
+        stoppedBecauseInvalidTime_ = true;
+        timer_.stop();
 }
 
+
 void TimerControlledGraphicsPixmapObject::move()
 {
 
@@ -68,14 +99,14 @@ void TimerControlledGraphicsPixmapObject::move()
 
     QRect sceneRectangle = scene()->sceneRect().toRect();
 
-    if (newx < sceneRectangle.left() || newx > sceneRectangle.right()-40)
+    if (newx < sceneRectangle.left() || newx > sceneRectangle.right()-pixmap().width())
     {
         changeDirection();
         return;
     }
 
 
-    if (newy < sceneRectangle.top() || newy > sceneRectangle.bottom()-40)
+    if (newy < sceneRectangle.top() || newy > sceneRectangle.bottom()-pixmap().height())
     {
         changeDirection();
         return;     //the old x and y values remain intact
@@ -102,10 +133,10 @@ void TimerControlledGraphicsPixmapObject::move()
 
 void TimerControlledGraphicsPixmapObject::changeDirection()
 {
-    qDebug () << "Supposed to change direction";
+ //   qDebug () << "Supposed to change direction";
 
     int direction = (qrand()%8);
-    qDebug()  << direction;
+ //   qDebug()  << direction;
 
     switch (direction)
     {