所以我有这个使用 csv 文件填充的数组列表。填充后,它用于将对象绘制到框架中。这是我的 onDrawFrame 方法(我知道它很乱,我稍后会清理)
@Override
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT |
GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glScalef(screenWidth/10, screenHeight/7, 0);
while (currentLoadSpace < totalMapSize){
loadObject = levelDat.get(currentLoadSpace);
Log.d(TAG,"currentLoadSpace " + String.valueOf(currentLoadSpace));
Log.d(TAG,"totalMapSize " + String.valueOf(totalMapSize));
Log.d(TAG,"loadObject " + String.valueOf(loadObject));
Log.d(TAG,"x " + String.valueOf(x));
Log.d(TAG,"y " + String.valueOf(y));
gl.glPushMatrix();
gl.glTranslatef(x, y, 0);
if (String.valueOf(loadObject) == "000"){
Log.d(TAG, "Empty Space");
}
if (String.valueOf(loadObject) == "001"){
square.draw(gl);
Log.d(TAG, "draw a square");
}
gl.glPopMatrix();
currentLoadSpace++;
updateXY();
}
currentLoadSpace = 0;
}
基本上这段代码所做的是检查我们试图读取的值的索引是否小于 ArrayList 的总大小。然后它读取该值并根据 if 语句检查它(如果值为 000,那么它不会绘制任何东西,但如果值为 001,那么它将在位置 x,y 处绘制一个正方形)它对中的每个值重复此操作数组列表。
我的问题是 if 语句没有触发。它们上方的那些日志标签返回它们应该返回的所有值,并且加载对象始终返回 000 或 001,但我从未从返回的 if 语句中获取日志标签,并且我的屏幕保持空白。
这是此代码的一个循环的日志。
10-22 11:54:37.821: DEBUG/input(14680): currentLoadSpace 0
10-22 11:54:37.821: DEBUG/input(14680): totalMapSize 55
10-22 11:54:37.821: DEBUG/input(14680): loadObject 001
10-22 11:54:37.821: DEBUG/input(14680): x 0.0
10-22 11:54:37.821: DEBUG/input(14680): y 1.0
注意没有返回正方形绘制的日志,那么我的 if 语句为什么不能识别 loadObject 值?