You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C++及graphics.h开发小车游戏,如何保存高分?

解决C++ graphics.h小车游戏的高分保存问题

图形模式(graphics.h)仅负责画面渲染,高分的保存与读取属于文件IO操作,和图形渲染逻辑完全独立。你可以直接用C++标准文件流实现数据的持久化存储,以下是具体实现方案:

1. 核心思路

将高分写入本地文件(文本或二进制格式),游戏启动时从文件读取历史高分,游戏结束后对比当前得分与历史高分,更新并保存新的高分。

2. 文本文件实现(简单直观)

保存高分函数

void saveHighScore(int score) {
    ofstream outFile("highscore.txt");
    if (outFile.is_open()) {
        outFile << score;
        outFile.close();
    }
}
  • 文件不存在时会自动创建,已存在则覆盖原有内容,默认保存在程序运行目录(与.exe同文件夹)。

读取高分函数

int loadHighScore() {
    int highScore = 0;
    ifstream inFile("highscore.txt");
    if (inFile.is_open()) {
        inFile >> highScore;
        inFile.close();
    }
    // 首次运行无文件时,返回默认高分0
    return highScore;
}

游戏中的调用示例

// 假设游戏结束后,玩家当前得分存储在currentScore中
int currentScore = 1800;
int savedHighScore = loadHighScore();

// 用graphics.h渲染得分信息
outtextxy(120, 220, "当前得分: ");
char currentScoreBuf[20];
sprintf(currentScoreBuf, "%d", currentScore);
outtextxy(220, 220, currentScoreBuf);

outtextxy(120, 270, "历史高分: ");
char highScoreBuf[20];
sprintf(highScoreBuf, "%d", savedHighScore);
outtextxy(220, 270, highScoreBuf);

// 对比并更新高分
if (currentScore > savedHighScore) {
    saveHighScore(currentScore);
    outtextxy(120, 320, "恭喜!刷新历史高分!");
}

3. 二进制文件实现(防手动修改)

如果担心玩家手动修改文本文件中的高分,可以改用二进制存储:

二进制保存

void saveHighScoreBin(int score) {
    ofstream outFile("highscore.bin", ios::binary);
    if (outFile.is_open()) {
        outFile.write((char*)&score, sizeof(int));
        outFile.close();
    }
}

二进制读取

int loadHighScoreBin() {
    int highScore = 0;
    ifstream inFile("highscore.bin", ios::binary);
    if (inFile.is_open()) {
        inFile.read((char*)&highScore, sizeof(int));
        inFile.close();
    }
    return highScore;
}

注意事项

  • 若需指定文件存储路径,可使用绝对路径(如"C:/game_data/highscore.txt"),Windows系统下路径需用双反斜杠\\或单斜杠/。
  • 文件IO操作与graphics.h的图形环境完全独立,无需针对图形模式做额外适配。

内容的提问来源于stack exchange,提问作者Solaiman Hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:48:52