代码拉取完成,页面将自动刷新
#include "gamemap.h"
#include"QFile"
#include"QDebug"
#include"QMessageBox"
gamemap::gamemap(QObject *parent)
: QObject{parent}
{
mRow=0;
mCol=0;
mparr=nullptr;
}
gamemap::~gamemap()
{
if(mparr!=nullptr)
{
for(int i=0;i<mRow;i++)
{
delete[]mparr[i];
}
delete[] mparr;
}
}
bool gamemap::Inital(QString file)
{
QFile f(file);
if(!f.open(QIODevice::ReadOnly))
{
return false;
}
QByteArray arr=f.readAll();
arr.replace("\r\n","\n");
QList<QByteArray> lineList=arr.split('\n');
mRow=lineList.size();//确定行
mparr=new int*[mRow];
for(int i=0;i<mRow;i++)//遍历行
{
QList<QByteArray> colList=lineList[i].split(',');
mCol =colList.size();
mparr[i]=new int[mCol];
for(int j=0;j<mCol;j++)//遍历列
{
mparr[i][j]=colList[j].toInt();
}
}
return true;
}
void gamemap::win()//胜利判断函数
{
bool w=1;
for(int i=0;i<mRow;i++)//遍历行
{
for(int j=0;j<mCol;j++)//遍历列
{
if(mparr[i][j]==target)
w=0;
}
}
if(w){
QMessageBox::information(nullptr,"恭喜通关","恭喜通过本关,请选择下一关",QMessageBox::Ok,QMessageBox::Cancel,QMessageBox::No);
}
}
void gamemap::Paint(QPainter*_p,QPoint Pos )
{
for(int i=0;i<mRow;i++)
{
for(int j=0;j<mCol;j++)
{
QString imgUrl;
switch(mparr[i][j])
{
case Road:imgUrl="://image/Road.png";break;
case target:imgUrl="://image/target.png";break;
case Box:imgUrl="://image/Box.png";break;
case Flower:imgUrl="://image/Flower.png";break;
case FlowerGrass:imgUrl="://image/FlowerGrass.png";break;
case grass:imgUrl="://image/grass.png";break;
case GreenGrass:imgUrl="://image/GreenGrass.png";break;
case WaterDown:imgUrl="://image/WaterDown.png";break;
case WaterDownLeft:imgUrl="://image/WaterDownLeft.png";break;
case WaterDownRight:imgUrl="://image/WaterDownRight.png";break;
case WaterHead:imgUrl="://image/WaterHead.png";break;
case WaterHeadLeft:imgUrl="://image/WaterHeadLeft.png";break;
case WaterHeadRight:imgUrl="://image/WaterHeadRight.png";break;
case WaterMiddle:imgUrl="://image/WaterMiddle.png";break;
case WaterMiddleLeft:imgUrl="://image/WaterMiddleLeft.png";break;
case WaterMiddleRight:imgUrl="://image/WaterMiddleRight.png";break;
case Man:imgUrl=":/image/Man.png";break;
case MovingMan:imgUrl=":/image/MovingMan.png";break;
case ManinRoad:imgUrl=":/image/ManinRoad.png";break;
case ManinGrass:imgUrl=":/image/ManinGrass.png";break;
case MovingManinRoad:imgUrl=":/image/MovingManinRoad.png";break;
case MovingManinGrass:imgUrl=":/image/MovingManinGrass.png";break;
case correct:imgUrl="://image/Correct.png";break;
}
QImage img(imgUrl);
_p->drawImage(QRect(Pos.x()+j*img.width(),Pos.y()+i*img.height(),img.width(),img.height()),img);
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。