1

我正在使用 Qt Creator 创建一个简单的“青蛙”类型游戏。我设法得到了一个可以使用 4 个方向键的播放器,以及一辆可以在屏幕上自行移动的汽车。我有单独的 Player、Car 和 Frogger 类。

Frogger 类在paintEvent中绘制图像:

painter.drawImage(player->getRect(), player->getImage());
painter.drawImage(car->getRect(), car->getImage());

但是我在尝试为汽车加载不同的图像时遇到了问题。如果我image.load("player.png");同时使用汽车和播放器构造函数,我可以看到汽车在屏幕上作为播放器图像移动,播放器根据我的键移动。

但是,如果我用其他任何东西替换图像(所有图像都在同一个文件夹中;我还尝试将其添加到“其他文件”下的 Qt Creator),例如“car.png”,它似乎不会出现。我尝试了其他图像,但这些图像也没有显示给播放器。关于为什么会发生这种情况的任何想法?我注释掉了我的autoMove()函数并且没有任何变化,所以我认为这与我如何实现我的动作无关。关于我可能遗漏的任何想法?

4

1 回答 1

0

我想您可以在加载图像时减少过程中可能出现的错误位置。尝试通过检查以下的返回值来确认这一点QImage::load

QString path = "player.png";
bool loadSuccess = image.load(path);
qDebug() << "Image" << path << "loaded? =>" << loadSuccess;

如果这将打印错误,请检查 Qt 在传递到时是否可以找到完全相同的路径QFile

if(!loadSuccess)
    qDebug() << "  File exists? =>" << QFile::exists(path);

如果这将打印为 true,则 Qt 无法读取图像格式。您可能使用了非标准的 PNG 编码。图像是否都来自同一来源?(例如由相同的图像编辑器编辑)

但是,如果即使上面的第一个调试输出始终打印为 true,您仍然会收到错误,则错误在其他地方。然后,它可以帮助我们提供更多关于如何使用图像的代码。

于 2012-10-10T11:58:12.133 回答