c - 用C画一个游戏板

标签 c coordinates 2d-games coordinate-systems

好吧,正如标题所说,我正在尝试画一个游戏板。好吧,我自己做了板子,它看起来有点像他的:

4 |
3 |
2 |
1 |
0 |
   - - - - -
   0 1 2 3 4

但这不是问题。我觉得很难的是我想在板上画星形 (*) 的图标,坐标在这样的数组中给出

posX {2,4,2,1}
posY {2,3,4,4}

所以在这种情况下,我应该在坐标 (2,2) 、 (4,3) 、 (2,4) 、 (1,4) 等处绘制 *。有什么想法吗?

最佳答案

如果你在终端(控制台)上打印这些,你不能简单地打印坐标轴然后返回并放置坐标,但是如果你的坐标系足够小,你应该不会有重新绘制整个的问题每次添加新点时登机。

一种简单的方法是保留一个二维字符数组,并根据坐标放置“”或“*”。这样,每次将新点添加到坐标时,您都可以简单地逐行打印二维数组。

当然,您还负责打印轴,但这部分应该是直截了当的。

char points [4][4] ={
       {' ',' ',' ',' '},
       {' ',' ',' ',' '},
       {' ',' ',' ',' '},
       {' ',' ',' ',' '},
       };

是您将拥有的空板。现在如果你想在坐标 (1,2) 处输入一些东西,你需要做的就是说 points[1][2]='*';

要打印整个数组,您需要一个嵌套循环,外循环遍历行,内循环遍历列。像这样:

int i,j;

for (i=0; i<4; ++i)
    {
        for (j=0; j<4; ++j) printf("%c ", points[i][j]);

     printf("\n");
     }

这样坐标值将从左到右,从上到下递增。如果你想要,你应该改变 for 循环边界。

要刷新屏幕,我建议您打印一大堆换行符以有效清除屏幕。还有其他方法可以做到这一点(比如 system("cls"),但不是那么无痛

关于c - 用C画一个游戏板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34315289/

相关文章:

c++ - 如何在 C 或 C++ 中检查结构是否为 NULL

Android OpenGL ES 触摸添加对象

java - 寻找一种在 android studio (java) 中的基于文本的游戏中保存游戏数据的方法

c - MPI 仅从 SELECT 处理器收集

c - 避免在函数调用之间传递大数据

c - 将 upvalue 传递给 C 中的 Lua 5.2 模块

c++ - 对位图图像使用 X、Y 坐标

mysql - 在 MySQL 中将带有坐标的字符串分解为纬度/经度

python - 如何阻止我的蛇向自身移动(python,pygame)

Java-Tile map 图像闪烁-我该怎么做才能阻止这种情况?