Diffstat (limited to 'noncore/games/parashoot/cannon.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/games/parashoot/cannon.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/noncore/games/parashoot/cannon.cpp b/noncore/games/parashoot/cannon.cpp index 3c0a5fe..5671351 100644 --- a/noncore/games/parashoot/cannon.cpp +++ b/noncore/games/parashoot/cannon.cpp @@ -1,68 +1,67 @@ /********************************************************************** -** Copyright (C) 2000 Trolltech AS. All rights reserved. +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** -** This file is part of Qtopia Environment. +** This file is part of the Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ -#include <qpe/resource.h> +#include <qtopia/resource.h> #include <qregexp.h> #include "codes.h" #include "cannon.h" Cannon::Cannon(QCanvas* canvas) : QCanvasSprite(0, canvas) { shotsfired=0; index = 8; cannonx = 0; cannony = 0; cannonarray = new QCanvasPixmapArray(); QString c0 = Resource::findPixmap("parashoot/can0001"); c0.replace(QRegExp("0001"),"%1"); cannonarray->readPixmaps(c0,17); setSequence(cannonarray); setFrame(index); - move(canvas->width()/2-20, canvas->height()-32); - // co ords for barrel of cannon when upright - barrelypos = canvas->height()-32; - barrelxpos = canvas->width()/2; + + reposition(); + movedir = NoDir; moveDelay = 0; setAnimated(TRUE); show(); } void Cannon::advance(int stage) { if ( stage == 1 && moveDelay-- == 0 ) { if (movedir == Left) { if (index > 0) { setFrame(index-1); index--; } } if (movedir == Right) { if (index < 16) { setFrame(index+1); index++; } } moveDelay = 0; } } @@ -117,24 +116,35 @@ double Cannon::shootAngle() case 13: return 127.5; case 14: return 135.0; case 15: return 142.5; case 16: return 150.0; } return 0; } void Cannon::shoot() { setCoords(); Bullet* bullet = new Bullet(canvas(), shootAngle(), cannonx, cannony); connect(bullet, SIGNAL(score(int)), this, SIGNAL(score(int))); shotsfired++; } Cannon::~Cannon() { } int Cannon::rtti() const { return cannon_rtti; } + +void Cannon::reposition(void) +{ + move(canvas()->width()/2-20, canvas()->height()-32); + // co ords for barrel of cannon when upright + barrelypos = canvas()->height()-32; + barrelxpos = canvas()->width()/2; + + setFrame(index); + setCoords(); +} |