【发布时间】:2013-02-24 00:45:34
【问题描述】:
我从一个包含对象位置的文本文件中加载了一个数组,它看起来像这样:
0,0,0,5
0,5,0,0
0,0,5,0
0,5,5,0
对象如下所示:
struct object
{
int x, y, value;
}
其中 x,y 是坐标,值是 1 或 0(它表明一个对象是否被“拾取”,所有对象的开头都为 1)。对象存储在数组object obj_array[5]中。
为了绘制它们,我使用了这个函数: (BOARD_Y 和 BOARD_Y 是数组的大小,这里是 4x4)
void draw_board(){
for (int iy = 0; iy < BOARD_Y; iy++) {
for (int ix = 0; ix < BOARD_X; ix++) {
if ( (board[iy][ix] == 5) )
{
glPushMatrix();
glTranslatef( ix, iy, 0 );
glutSolidCube(1);
glPopMatrix();
}
}
}
}
它完美地绘制了所有这些。但是我想跳过绘制一个对象,如果它的值为 0(对象被玩家拾取)。我该怎么做?
【问题讨论】:
-
可能值得研究一下Wavefront OBJ format。这是一种非常简单的格式,但它有很多功能,以及很多现有的加载器/解析器
-
您的
objects 存储在哪里? -
@Bojangles 我认为标题欺骗了你——这与从文件中读取模型无关。这里的文件是一个对象板。
-
是否可以在循环中添加另一个 if 语句?
-
@sftrabbit 我需要开始阅读,不是吗
:(