📄 view.h
字号:
/******************************************************************************** Copyright (C) 2006-2006 Trolltech ASA. All rights reserved.**** This file is part of the example classes of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file. Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************//* * KAsteroids - Copyright (c) Martin R. Jones 1997 * * Part of the KDE project */#ifndef __AST_VIEW_H__#define __AST_VIEW_H__#include <qwidget.h>#include <q3ptrlist.h>#include <q3intdict.h>#include <qtimer.h>#include <QGraphicsScene>#include <QGraphicsView>//Added by qt3to4:#include <QTimerEvent>#include <QShowEvent>#include <QResizeEvent>#include "sprites.h"#define MAX_POWER_LEVEL 1000class KAsteroidsView : public QWidget{ Q_OBJECTpublic: KAsteroidsView( QWidget *parent = 0, const char *name = 0 ); virtual ~KAsteroidsView(); int refreshRate; void reset(); void setRockSpeed( double rs ) { rockSpeed = rs; } void addRocks( int num ); void newGame(); void endGame(); void newShip(); void rotateLeft( bool r ) { rotateL = r; rotateSlow = 5; } void rotateRight( bool r ) { rotateR = r; rotateSlow = 5; } void thrust( bool t ) { thrustShip = t && shipPower > 0; } void shoot( bool s ) { shootShip = s; shootDelay = 0; } void setShield( bool s ); void teleport( bool te) { teleportShip = te && mTeleportCount; } void brake( bool b ); void pause( bool p); void showText( const QString &text, const QColor &color, bool scroll=TRUE ); void hideText(); int shots() const { return shotsFired; } int hits() const { return shotsHit; } int power() const { return shipPower; } int teleportCount() const { return mTeleportCount; } int brakeCount() const { return mBrakeCount; } int shieldCount() const { return mShieldCount; } int shootCount() const { return mShootCount; }signals: void shipKilled(); void rockHit( int size ); void rocksRemoved(); void updateVitals();private slots: void hideShield();protected: bool readSprites(); void wrapSprite( QGraphicsItem * ); void rockHit( AnimatedPixmapItem * ); void reducePower( int val ); void addExhaust( double x, double y, double dx, double dy, int count ); void processMissiles(); void processShip(); void processPowerups(); void processShield(); double randDouble(); int randInt( int range ); virtual void resizeEvent( QResizeEvent *event ); virtual void timerEvent( QTimerEvent * ); void showEvent( QShowEvent * );private: QGraphicsScene field; QGraphicsView view; QMap<int, QList<QPixmap> > animation; Q3PtrList<AnimatedPixmapItem> rocks; Q3PtrList<KMissile> missiles; Q3PtrList<KBit> bits; Q3PtrList<KExhaust> exhaust; Q3PtrList<KPowerup> powerups; KShield *shield; AnimatedPixmapItem *ship; QGraphicsTextItem *textSprite; bool rotateL; bool rotateR; bool thrustShip; bool shootShip; bool teleportShip; bool brakeShip; bool pauseShip; bool shieldOn; bool vitalsChanged; int shipAngle; int rotateSlow; int rotateRate; int shipPower; int shotsFired; int shotsHit; int shootDelay; int mBrakeCount; int mShieldCount; int mTeleportCount; int mShootCount; double shipDx; double shipDy; int textDy; int mFrameNum; bool mPaused; int mTimerId; double rockSpeed; double powerupSpeed; bool can_destroy_powerups; QTimer *shieldTimer; bool initialized;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -