我正在为 Eclipse 中的一个 android 项目编写一个顶点类,并且在构造函数中我有一个运行时错误。这是构造函数...
public Vertices(GLGraphics glGraphics, int maxVertices, int maxIndices, boolean hasColor, boolean hasTexCoords)
{
this.glGraphics = glGraphics;
this.hasColor = hasColor;
this.hasTexCoords = hasTexCoords;
this.vertexSize = (2 + (hasColor?4:0) + (hasTexCoords?2:0)) * 4;
ByteBuffer buffer = ByteBuffer.allocateDirect(maxVertices * vertexSize);
buffer.order(ByteOrder.nativeOrder());
vertices = buffer.asFloatBuffer();
if(maxIndices > 0)
{
buffer = ByteBuffer.allocateDirect(maxIndices * Short.SIZE / 8);
buffer.order(ByteOrder.nativeOrder());
indices = buffer.asShortBuffer();
}
else
{
indices = null;
}
}
在本声明中:
this.vertexSize = (2 + (hasColor?4:0) + (hasTexCoords?2:0)) * 4;
我正在计算顶点的大小(以字节为单位)。问题是,每当计算三元运算时,vertexSize 保持为 0,并且程序在该语句处跳出构造函数。三元运算符不会根据条件是真还是假来评估它的值。这里发生了什么?