1 Star 1 Fork 0

nullptr/基于Qt开发的推箱子游戏(内含自制地图)

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
gamemap.cpp 3.18 KB
一键复制 编辑 原始数据 按行查看 历史
nullptr 提交于 1年前 . Tenth
#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);
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/wang-yong416/push-box.git
git@gitee.com:wang-yong416/push-box.git
wang-yong416
push-box
基于Qt开发的推箱子游戏(内含自制地图)
master

搜索帮助