-rw-r--r-- | noncore/games/snake/interface.h | 2 | ||||
-rw-r--r-- | noncore/games/snake/obstacle.cpp | 35 | ||||
-rw-r--r-- | noncore/games/snake/obstacle.h | 4 |
3 files changed, 30 insertions, 11 deletions
diff --git a/noncore/games/snake/interface.h b/noncore/games/snake/interface.h index 30c7f84..454d4ee 100644 --- a/noncore/games/snake/interface.h +++ b/noncore/games/snake/interface.h @@ -33,13 +33,12 @@ class SnakeGame : public QMainWindow { public: SnakeGame(QWidget* parent=0, const char* name=0, WFlags f=0); ~SnakeGame(); void clear(); void createTargets(); - void welcomescreen(); protected: virtual void keyPressEvent(QKeyEvent*); virtual void resizeEvent(QResizeEvent *e); signals: @@ -48,12 +47,13 @@ signals: private slots: void newGame(); void gameOver(); void wait(); void levelUp(); void scoreInc(); + void welcomescreen(); private: void showScore(int); QCanvasView* cv; QLabel* scorelabel; QCanvas canvas; diff --git a/noncore/games/snake/obstacle.cpp b/noncore/games/snake/obstacle.cpp index 2d07fe7..4bdefa5 100644 --- a/noncore/games/snake/obstacle.cpp +++ b/noncore/games/snake/obstacle.cpp @@ -20,26 +20,45 @@ #include "obstacle.h" #include "codes.h" #include <qpe/resource.h> -Obstacle::Obstacle(QCanvas* canvas, int x, int y) - : QCanvasSprite(0, canvas) + + +Obstacle::Obstacle(QCanvas* canvas, int y) + : QCanvasSprite(0,canvas) { - newObstacle(x, y); + newObstacle(y); } -void Obstacle::newObstacle(int x, int y) +void Obstacle::newObstacle(int y) { - QCanvasPixmapArray* obstaclearray = new QCanvasPixmapArray(Resource::findPixmap("snake/wall.png")); - + QPixmap obstaclePix( Resource::findPixmap("snake/wall.png") ); + + if ( obstaclePix.width() > canvas()->width()*3/5 ) { + int w = canvas()->width()*3/5; + w = w - w % 16; + obstaclePix.resize( w, obstaclePix.height() ); + } + + QList<QPixmap> pixl; + pixl.append( &obstaclePix ); + + QPoint nullp; + QList<QPoint> pl; + pl.append( &nullp ); + + QCanvasPixmapArray* obstaclearray = new QCanvasPixmapArray(pixl, pl); setSequence(obstaclearray); - + + int x = ( canvas()->width() - obstaclePix.width() )/2; + x = x - x % 16; + y = y - y % 16; move(x, y); - + setZ( -100 ); show(); canvas()->update(); } int Obstacle::rtti() const { diff --git a/noncore/games/snake/obstacle.h b/noncore/games/snake/obstacle.h index 838917f..b3c7846 100644 --- a/noncore/games/snake/obstacle.h +++ b/noncore/games/snake/obstacle.h @@ -20,11 +20,11 @@ #include <qcanvas.h> class Obstacle : public QCanvasSprite { public: - Obstacle(QCanvas*, int x, int y); + Obstacle(QCanvas*, int y); ~Obstacle(); - void newObstacle(int x, int y); + void newObstacle(int y); int rtti() const; }; |