如何在Csfml中为地图充电

时间:2018-01-13 12:25:26

标签: c file sfml

我正在以 CSFML 制作游戏以进行学校练习

为了满足所有要求,我必须遵循有限运行规则的游戏作为几何破折号。除了主要功能外,它还可以执行所有操作:从文件中获取地图:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXX2XXXXXXXXX2XXXXXXXXXXXXXXE
111111111111111111111111111111111111
  • X代表什么(它们将是显示的背景)

  • 2是秒杀

  • 1是基础

  • E结束,它会在显示胜利屏幕后停止程序 (每个角色将被分配的纹理替换,除了代表空白的X之外)

我只能访问几个C函数(write,free,malloc,rand,open,read,getline) 我正在考虑只是阅读文件并将其存储为char *,但问题是我不知道如何在屏幕上一个接一个地显示尖峰,当它们必须时。

1 个答案:

答案 0 :(得分:1)

您需要为所有块选择一个大小。 每个块(X,2、1,E)都必须具有相同的大小。

示例(块尺寸为64 * 64px)

void display_map(char **map)
{
    char *image = NULL;
    int size_block = 64;
    for (int i = 0; map[i] != NULL; i++) {
        for (int j = 0; map[i][j] != '\0'; j++) {
            switch (map[i][j]) {
                case 'X':
                    image = "nothing";
                    break;
                case '2':
                    image = "pike";
                    break;
                // ....
            }
            display_at_position(i * size_block, j * size_block, image);
        }
    }
}