資源簡介
這是一個仿照雷電的Qt小游戲.
本游戲基于Qt5.3.1 vs2010, 使用的是Qt的GraphicsView框架
初學(xué)者的水平
有很多注釋,下載后,請將文件名重命名為game.zip并解壓打開即可
代碼片段和文件信息
#include?“airplane.h“
#include?“bullet.h“
#include?“bulletfactory.h“
#include?
#include?
//?constructor
AirPlane::AirPlane(QPointF?center?const?QString?&filename
????GameController?&ctrller
????int?maxLifeNum?bool?isFiring
????double?speedX?double?speedY)
????:Sprite(centerfilenameNoTypespeedXspeedY)maxLifeNum(maxLifeNum)???//?initial?all?the?attributes
????isFiring(isFiring)curLifeNum(maxLifeNum)controller(ctrller)
{
????bulletDamage?=?0;
????bulletWaitTime?=?-1;
????bulletCurTime?=?bulletWaitTime;
}
//getRange:?get?the?fit?rect?of?this?plane
QRectF?AirPlane::getRange()?const
{
????return?shape().boundingRect();??????????????????????//?get?the?bounding?rect?of?it‘s?shape
}
//?some?methods?used?to?set?the?attributes?of?this?plane
void?AirPlane::setMaxLifeNum(int?lifeNum)
{
????maxLifeNum?=?lifeNum;
????curLifeNum?=?lifeNum;
}
void?AirPlane::setBulletDamage(int?damage)
{
????bulletDamage?=?damage;
}
void?AirPlane::setBulletWaitTime(int?waitTime)
{
????bulletWaitTime?=?waitTime;
}
void?AirPlane::increaseDamage(int?damage)
{
????bulletDamage?+=?damage;
}
void?AirPlane::damage(int?damage)
{
????curLifeNum?-=?damage;
}
//?advance:?handle?movement?collision?and?fire
void?AirPlane::advance(int?step)
{
????if?(isToDelete)?????????????????//?test?if?is?to?be?deleted?first
????{
????????delete?this;
????????return;
????}
????Sprite::advance(step);??????????//?use?Sprite‘s?method?to?handle?movement?and?collision
????handlefirings(step);????????????//?handle?emit?bullet
}
//?handle?firing:?handle?whether?the?plane?is?to?emit?bullet
void?AirPlane::handlefirings(int?step)
{
????if?(isFiring)
????{
????????if?(bulletCurTime?<=?0)?????//?if?can?emit?bullet
????????{
????????????bulletCurTime?+=?bulletWaitTime;????????//?reset?the?bulletcurtime
????????????controller.PlaneEmitBullet(this);???????//?let?gamecontroller?emit?bullet
????????}
????????bulletCurTime?-=?step;??????????????????????//?calculate?bulletCurTime
????}
}
//?overload?to?draw?the?blood?bar
void?AirPlane::paint(QPainter?*painter?const?QstyleOptionGraphicsItem?*s?QWidget?*w)
{
????painter->save();
????Sprite::paint(paintersw);
????//?draw?the?full?blood?bar
????painter->setPen(Qt::white);
????painter->drawRect(-getWidth()/2getHeight()/2getWidth()4);
????//?calcualte?for?later?draw
????double?lifeRate?=?double(curLifeNum)?/?maxLifeNum;??????????//?used?for?get?the?color?of?the?blood?bar
????double?lifeLength?=?lifeRate?*?getWidth();??????????????????//?used?for?get?the?length?of?the?blood?bar
????//?draw?current?blood?bar
????if?(lifeLength?>?0)
????{
????????if?(lifeRate?>?0.7)
????????????painter->fillRect(-getWidth()/2?getHeight()/2?lifeLength?4?Qt::green);
????????else?if?(lifeRate?>?0.4)
????????????painter->fillRect(-getWidth()/2?getHeight()/2?lifeLength?4?Qt::yellow);
????????else
????????????painter->fillRect(-getWidth()/2?getHe
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-07-27?10:12??1942_final\
?????文件?????5038064??2014-07-03?17:07??1942_final\default.wav
?????文件?????1325056??2014-07-26?23:32??1942_final\HwDemo.exe
?????文件????23507968??2014-01-15?16:44??1942_final\icudt52.dll
?????文件?????1798656??2014-01-15?16:44??1942_final\icuin52.dll
?????文件?????1304064??2014-01-15?16:44??1942_final\icuuc52.dll
?????文件?????4110848??2014-06-25?23:18??1942_final\Qt5Core.dll
?????文件?????4346368??2014-06-19?18:39??1942_final\Qt5Gui.dll
?????文件??????544768??2014-06-19?19:24??1942_final\Qt5Multimedia.dll
?????文件??????849408??2014-06-19?18:37??1942_final\Qt5Network.dll
?????文件?????4372992??2014-06-19?18:42??1942_final\Qt5Widgets.dll
?????文件???????80443??2014-07-27?10:11??1942_final\saveFile
?????文件???????????8??2014-07-27?10:12??1942_final\score
?????文件?????????201??2014-07-30?19:15??1942_final\skin
?????目錄???????????0??2014-07-27?14:15??final\
?????文件???????11801??2014-07-26?21:27??final\airplane.cpp
?????文件????????7340??2014-07-24?13:05??final\airplane.h
?????文件????????3550??2014-07-24?13:32??final\background.cpp
?????文件????????1999??2014-07-24?13:25??final\background.h
?????文件??????556507??2014-07-12?23:27??final\bkg1.png
?????文件???????35904??2014-07-22?00:16??final\bkg2.png
?????文件????????3968??2014-07-21?11:02??final\bombBonus.png
?????文件????????1394??2014-07-24?13:42??final\bonus.cpp
?????文件?????????506??2014-07-24?13:33??final\bonus.h
?????文件????????1104??2014-07-24?12:38??final\bullet.cpp
?????文件????????1263??2014-07-24?12:37??final\bullet.h
?????文件????????3029??2014-07-17?16:28??final\bullet.png
?????文件????????3929??2014-07-21?11:00??final\bulletDamageBonus.png
?????文件????????4325??2014-07-26?15:59??final\bulletfactory.cpp
?????文件????????1472??2014-07-24?14:19??final\bulletfactory.h
?????文件?????2344960??2014-07-24?19:28??final\class.eap
............此處省略43個文件信息
評論
共有 條評論