我正在以 CSFML 制作游戏以进行学校练习
为了满足所有要求,我必须遵循有限运行规则的游戏作为几何破折号。除了主要功能外,它还可以执行所有操作:从文件中获取地图:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXX2XXXXXXXXX2XXXXXXXXXXXXXXE
111111111111111111111111111111111111
X代表什么(它们将是显示的背景)
2是秒杀
1是基础
E结束,它会在显示胜利屏幕后停止程序 (每个角色将被分配的纹理替换,除了代表空白的X之外)
我只能访问几个C函数(write,free,malloc,rand,open,read,getline) 我正在考虑只是阅读文件并将其存储为char *,但问题是我不知道如何在屏幕上一个接一个地显示尖峰,当它们必须时。
答案 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);
}
}
}