资源简介
这是一个仿照雷电的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个文件信息
相关资源
- Mqtt发布与订阅功能
- Qt基于RTP打包H.264
- Qt加载百度离线地图
- QT5做的打地鼠
- Qt培训详细教程含2个项目源码
- 基于嵌入式QT界面GPS定位系统
- QT编程电子书,适合入门学习
- 软件打包小工具2.0版本
- vs2010+qt四则混合运算计算器
- STM32CubeMX通过ESP8266 AT指令MQTT上阿里云
- qt-vsaddin-msvc2019-2.5.1.vsix
- flash小游戏,消除类
- 点名抽答程序QT
- unity小游戏四子连珠
- QT 串口助手软件加源码,有示波器功
- qtOpenCVTools v1.7.0.rar
- 利用VS2010 和qt 4.8.4编写的加法计算器
- QT电子词典
- QT5串口助手源码+动态库发布程序+打包
- emqttd-windows7-v2.3.0.zip
- 精通QT4编程QT4编程的经典书籍
- 用QT做一个简单的登录界面
- Qt实现的迷宫游戏_可执行程序迷宫生
-
MQTT单片机编程小工具(阿里云li
n - OpenCV 4.2.0 && Qt5.14.1 编译好的库
- Qt开发的海康威视摄像头开发
- Cocos Creator7个小游戏合集2048、小鸟、
- 基于linux的QT4精彩分析上
- Qt基于librtmp推送H.264
- QCefView.zip
评论
共有 条评论