//我要做成有请求补给的游戏样式!这样会很幸福的
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QPainter"
#include "qbitmap.h"
#include "QKeyEvent"
#include"qdebug.h"
#include "QDebug"
#include "QMessageBox"
#include<QTimer>
#include "iterator"
#include "QLabel"
#include "math.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
tadd=0;
em_size =40;
LS_int=0;
ui->L_Score->setText(" 0");
ui->L_Request->setText(" 1");
ui->L_Life->setText(" 5");
bulletsize=5;
// music->play(); //创建敌方坦克
if(found!=true)
{
for(int e=1;e<6;e++)
{
srand(clock());
int direct = qrand()%4;
EnemyTank *entank = new EnemyTank(e*150,e*50,direct);
MainWindow::vector_enemy.append(entank);
entank->start();
//MainWindow::vector_enemy.at(e-1)->start();
//在创建的敌方坦克中创建其子弹
bul1 = new Bullet(entank->x+20,entank->y+10,entank->dir);
entank->en_bullet_vector.append(bul1);
bul1->start();
}
}
//设置定时器用来不停地更新界面
timer = new QTimer; //新建一个定时器来定时刷新图
qDebug()<<"timer 我是运行了的";
connect(timer,SIGNAL(timeout()),this,SLOT(update())); //这个定时器只是作用与数据的更新
connect(timer,SIGNAL(timeout()),this,SLOT(hite())); //这个是用于子弹间的碰撞
connect(timer,SIGNAL(timeout()),this,SLOT(hitme())); //这个是用于敌人子弹和我的坦克的的碰撞检测的
connect(timer,SIGNAL(timeout()),this,SLOT(h())); //这个定时器只是作用与数据的更新
connect(timer,SIGNAL(timeout()),this,SLOT(hit())); //这个是用于子弹间的碰撞
connect(timer,SIGNAL(timeout()),this,SLOT(mboom(bool b))); //这个是用于子弹间的碰撞
connect(timer,SIGNAL(timeout()),this,SLOT(myshock())); //这个是用于子弹间的碰撞
connect(timer,SIGNAL(timeout()),this,SLOT(create_ET())); //这个是用于子弹间的碰撞
timer->start(80); //每隔65毫秒钟重新绘制一下
//绘制坦克大战的地图
QPixmap pixmap(":/new/prefix1/image/gamemap.jpg"); //Palette调色板
//QPixmap pixmap(":/new/prefix1/image/gameBack.bmp"); //Palette调色板
QPalette palette;
palette.setBrush(backgroundRole(), QBrush(pixmap));
setPalette(palette);
qDebug()<<"我欧 ";
music = Phonon::createPlayer(Phonon::MusicCategory, Phonon::MediaSource(":/new/prefix1/image/Boom.mp3"));
Phonon::MediaObject *music = Phonon::createPlayer(Phonon::MusicCategory, Phonon::MediaSource(":/new/prefix1/image/TankWar.mp3"));
music->play();
}
MainWindow::~MainWindow()
{
delete ui;
}
//在这里X,Y 是表示坦克运行的坐标(也就是左上角那个点的坐标), dir 是用于坦克运动方向的辨别;
void MainWindow::paintEvent(QPaintEvent *event)
{
qDebug("OK paint eveni i");
qDebug()<<"这不是真的"<<myTank1.x;
qDebug()<<"ddw22121"<<myTank1.y;
if(shock.spaint==true)
{
// QRectF target(shock.xt, shock.yt, 50, 50);
// QRectF source(0.0, 0.0, 50, 50);
// QImage image(":/new/prefix1/image/Time.png");
// QPainter painter(this);
// painter.drawImage(target, image, source);
// qDebug()<<"我是支援绘制我是被运行了的"<<shock.xt<<shock.yt;
QString sb=":/new/prefix1/image/Sbullet.png";
PaintAll(shock.xb,shock.yb,sb,50,50,50,50);
QString st=":/new/prefix1/image/zha.png";
PaintAll(shock.xt,shock.yt,st,50,50,50,50);
QString sl=":/new/prefix1/image/Life.png";
PaintAll(shock.xl,shock.yl,sl,50,50,50,50);
}
if(found!=true)
{
if(myTank1.life==true)
{
switch(myTank1.dir)
{
case 0:
{/*
QRectF target(myTank1.x, myTank1.y, 50, 50);
QRectF source(0.0, 0.0, 50, 50);
QImage image(":/new/prefix1/MyTank.png");
QPainter painter(this);
painter.drawImage(target, image, source);
qDebug("OK d");
qDebug()<<myTank1.x<<"fhvv";*/
QString qs=":/new/prefix1/image/MyTank.png";
PaintAll(myTank1.x,myTank1.y,qs,50,50,50,50);
}
break;
case 1:
{
QString qs=":/new/prefix1/image/MyTank_D.png";
PaintAll(myTank1.x,myTank1.y,qs,50,50,50,50);
}
break;
case 2:
{
QString qs=":/new/prefix1/image/MyTank_L.png";
PaintAll(myTank1.x,myTank1.y,qs,50,50,50,50);
}
break;
case 3:
{
QString qs=":/new/prefix1/image/MyTank_ R.png";
PaintAll(myTank1.x,myTank1.y,qs,50,50,50,50);
}
break;
}
qDebug()<<"myTank.bullet_vector.size"<<myTank1.bullet_vector.size();
//画出自己的坦克的子弹
for(int i=0 ; i<myTank1.bullet_vector.size() ;i++)
{
Bullet *bu = myTank1.bullet_vector.at(i);
if(bu->count!=0&& bu->life==true)
{
QString qs=":/new/prefix1/image/Bullet.png";
PaintAll(bu->x,bu->y,qs,10,10,10,10);
}
if( bu->life==false)
{
myTank1.bullet_vector.remove(i);
}
}
}
else
{
for(int bo=0;bo<20;bo++)
{
if(0<=bo&&bo<=2)
{
QString qss=":/new/prefix1/image/Bomb_1";
PaintAll(myTank1.x,myTank1.y,qss,60,60,60,60);
qDebug()<<"我是Bomb我循环了几次";
}
if(15<=bo && bo<=19)
{
QString qs=":/new/prefix1/image/Bomb_2";
PaintAll(myTank1.x,myTank1.y,qs,60,60,60,60);
}
}
if(kg!=1)
{
myTank1.m_bomb();
// bullet.exit(0);
// enemytank.exit(0);
this->timer->stop();
}
}
}
//绘制敌人坦克
if(found!=true)
{
for(int j=0;j<vector_enemy.size();j++)
{
EnemyTank *entank = MainWindow::vector_enemy.at(j);
getx=entank->x;
gety=entank->y;
qDebug()<<getx<<"entankpengzhuangcehsi";
qDebug()<<gety<<"entankpengzhuangcehsi";
z=10;
if(entank->life==true)
{
switch(entank->dir)
{
case 0:
{
QString enemy=":/new/prefix1/image/EnemyTank_U.png";
PaintAll(entank->x,entank->y,enemy,50,50,50,50);
}
break;
case 1:
{
QString enemy=":/new/prefix1/image/EnemyTank_D.png";
PaintAll(entank->x,entank->y,enemy,50,50,50,50);
}
break;
case 2:
{
QString enemy=":/new/prefix1/image/EnemyTank_L.png";
PaintAll(entank->x,entank->y,enemy,50,50,50,50);
}
break;
case 3:
{
QString enemy=":/new/prefix1/image/EnemyTank_R.png";
PaintAll(entank->x,entank->y,enemy,50,50,50,50);
}
break;
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
QT下实现的简单坦克大战 (101个子文件)
libphonon_ds9d4.a 2KB
libphonon_ds94.a 2KB
libqcncodecsd4.a 2KB
libqtwcodecsd4.a 2KB
libqjpcodecsd4.a 2KB
libqkrcodecsd4.a 2KB
libqtwcodecs4.a 2KB
libqjpcodecs4.a 2KB
libqcncodecs4.a 2KB
libqkrcodecs4.a 2KB
libqtiffd4.a 2KB
libqjpegd4.a 2KB
libqsvgd4.a 2KB
libqjpeg4.a 2KB
libqtiff4.a 2KB
libqgifd4.a 2KB
libqtgad4.a 2KB
libqicod4.a 2KB
libqmngd4.a 2KB
libqsvg4.a 2KB
libqgif4.a 2KB
libqico4.a 2KB
libqmng4.a 2KB
libqtga4.a 2KB
mainwindow.cpp 26KB
enemytank.cpp 3KB
mytank.cpp 3KB
shock.cpp 1KB
bullet.cpp 1KB
dialog.cpp 879B
main.cpp 601B
dialog_1.cpp 410B
main_window.cpp 236B
tank.cpp 45B
Thumbs.db 69KB
phonon_ds9d4.dll 4.44MB
qmngd4.dll 1.46MB
qjpegd4.dll 1.45MB
qtiffd4.dll 1.36MB
qjpcodecsd4.dll 978KB
qtgad4.dll 808KB
qsvgd4.dll 779KB
qtwcodecsd4.dll 680KB
qcncodecsd4.dll 673KB
qicod4.dll 659KB
qgifd4.dll 609KB
qkrcodecsd4.dll 602KB
qtiff4.dll 371KB
qmng4.dll 344KB
phonon4.dll 339KB
phonon_ds94.dll 301KB
qjpeg4.dll 282KB
qjpcodecs4.dll 220KB
qtwcodecs4.dll 206KB
qcncodecs4.dll 192KB
qkrcodecs4.dll 130KB
qgif4.dll 82KB
qico4.dll 82KB
qtga4.dll 75KB
qsvg4.dll 74KB
mainwindow.h 2KB
shock.h 1KB
mytank.h 675B
enemytank.h 479B
dialog.h 396B
bullet.h 360B
main_window.h 321B
tank.h 299B
dialog_1.h 297B
tank.ico 9KB
gamemap.jpg 186KB
bei.jpg 18KB
tui.jpg 12KB
back.jpg 11KB
2g.jpg 9KB
TankWar.mp3 2.16MB
Boom.mp3 21KB
Bomb_1.png 12KB
EnemyTank_U.png 9KB
EnemyTank_R.png 9KB
EnemyTank_D.png 9KB
EnemyTank_L.png 9KB
MyTank_ R.png 9KB
MyTank_L.png 9KB
Bomb_2.png 9KB
MyTank_D.png 9KB
Shock.png 8KB
MyTank.png 6KB
Life.png 6KB
Time.png 6KB
zha.png 5KB
Sbullet.png 4KB
Bullet.png 3KB
TankGame.pro 1KB
Image.qrc 950B
myapp.rc 43B
dialog_1.ui 5KB
mainwindow.ui 3KB
dialog.ui 2KB
Main_Window.ui 2KB
共 101 条
- 1
- 2
lovexiaoqinpeng
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页