• 大小: 23.25MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-06-16
  • 语言: 其他
  • 标签: Qt  小游戏  仿雷电  

资源简介

这是一个仿照雷电的Qt小游戏. 本游戏基于Qt5.3.1 vs2010, 使用的是Qt的GraphicsView框架 初学者的水平 有很多注释,下载后,请将文件名重命名为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个文件信息

评论

共有 条评论