⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamebrd.cpp

📁 我在我的EP9315上写的两个QT程序
💻 CPP
字号:
#include "gamebrd.h"#include <qapplication.h>#include <qpushbutton.h>#include <qlcdnumber.h>#include <qfont.h>#include <qlayout.h>#include <qlabel.h>#include "lcdrange.h"#include "cannon.h"GameBoard::GameBoard( QWidget *parent, const char *name)        :QWidget( parent, name){  QPushButton *quit =new QPushButton("Quit",this,"quit");  quit->setFont( QFont( "Times",18,QFont::Bold) );  connect(quit,SIGNAL(clicked()),qApp,SLOT(quit()) );    LCDRange *angle = new LCDRange( "ANGLE", this, "angle" );  angle->setRange( 5, 70);    LCDRange *force = new LCDRange( "FORCE", this, "force" );  force->setRange( 10, 50 );  cannonField     =new CannonField( this,"cannonField" );    connect( angle, SIGNAL(valueChanged(int)),cannonField,SLOT(setAngle(int)) );  connect(cannonField,SIGNAL(angleChanged(int)),angle,SLOT(setValue(int)));   connect( force, SIGNAL(valueChanged(int)),cannonField,SLOT(setForce(int)) );  connect(cannonField,SIGNAL(forceChanged(int)),force,SLOT(setValue(int)));     connect( cannonField,SINGAL(hit()), this,SLOT(hit()) );  connect( cannonField,SINGAL(missed()), this,SLOT(missed()) );  QPushButton *shoot =new QPushButton("Shoot",this,"shoot");  shoot->setFont( QFont( "Times",18,QFont::Bold) );    connect(shoot,SIGNAL(clicked()), SLOT(fire()) );  connect(cannonField, SIGNAL(canshoot()), shoot,SLOT(setEnabled(bool)) );  QPushButton *restart = new QPushButton( "&New Game", this, "newgame" );  restart->setFont( QFont( "Times", 18, QFont::Bold ) );    connect(restart,SIGNAL(clicked()), this,SLOT(newGame()) );  hits = new QLCDNumber( 2, this, "hits" );  shotsLeft = new QLCDNumber( 2, this, "shotsleft" );  Qlabel *hitsL = new QLabel ( "HITS", this, "shotsLeftLabel" );    QGridLayout *grid = new QGridLayout( this, 2, 2, 10);  grid->addWidget( quit, 0, 0 ); // grid->addWidget(angle,1, 0, Qt::AlignTop );  grid->addWidget(cannonField, 1, 1);  grid->setColStretch( 1, 10 );    QVBoxLayout *leftBox = new QVBoxLayout ;  grid->addLayout( leftBox, 1, 0 );   leftBox->addWidget( angle );  leftBox->addWidget( force );   QHBoxLayout *topBox = new QHBoxLayout;  grid->addLayout( topBox,0,1);  topBox->addWidget( shoot );  topBox->addWidget( hits );  topBox->addWidget( hitsL );  topBox->addWidget( shotsLeft );  topBox->addWidget( shotsLeftL );   topBox->addStretch( 1 );  topBox->addWidget( restart );     angle->setValue( 60 );  force->setValue( 20 );  angle->setFocus();  newGame();}void GameBoard::fire(){ if (cannonField->gameOver() || cannonField->isShooting() ) return; shotsLeft->display( shotsLeft->intValue() -1 ); cannonField->shoot();}void GameBoard::hit(){ hits->display( hits->intValue()) + 1); if( shotsLeft->intValue() == 0 )  cannonField->setGameOver(); else  cannonField->newTarget();}void GameBoard::missed(){  if( shotsLeft->intValue() == 0 )  cannonField->setGameOver();}void GameBoard::newGame(){ shotsLeft->display( 15 ); hits->display(0); cannonField->restartGame(); cannonField->newTarget();}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -