为什么在我添加数字时索引变量没有增加? [英] Why isn't my index variable increasing when I add numbers to it?
问题描述
我有以下浮点数组 public static float camObjCoord [] = new float [8000];
声明为全局变量。然后,我通过调用以下方法向其中添加内容:
I've got the following float array public static float camObjCoord[] = new float[8000];
declared as a global variable. I'm then adding content to it by calling the following method:
public void addcube(float highx, float lowx, float highz, float lowz){
//Constructing new cube...
Global.cubes = Global.cubes + 1;
float highy = 4.5f;
float lowy = 2.5f;
System.out.println("ADDING A CUBE!!");
//FRONT
Global.camObjCoord[Global.i] = highx;
Global.camObjCoord[Global.i+1] = lowy;
Global.camObjCoord[Global.i+2] = lowz;
Global.camObjCoord[Global.i+3] = highx;
Global.camObjCoord[Global.i+4] = lowy;
Global.camObjCoord[Global.i+5] = lowz;
Global.camObjCoord[Global.i+6] = highx;
Global.camObjCoord[Global.i+7] = highy;
Global.camObjCoord[Global.i+8] = lowz;
Global.camObjCoord[Global.i+9] = highx;
Global.camObjCoord[Global.i+10] = highy;
Global.camObjCoord[Global.i+11] = lowz;
//BACK
Global.camObjCoord[Global.i+12] = highx;
Global.camObjCoord[Global.i+13] = lowy;
Global.camObjCoord[Global.i+14] = highz;
Global.camObjCoord[Global.i+15] = highx;
Global.camObjCoord[Global.i+16] = highy;
Global.camObjCoord[Global.i+17] = highz;
Global.camObjCoord[Global.i+18] = highx;
Global.camObjCoord[Global.i+19] = lowy;
Global.camObjCoord[Global.i+20] = highz;
Global.camObjCoord[Global.i+21] = highx;
Global.camObjCoord[Global.i+22] = highy;
Global.camObjCoord[Global.i+23] = highz;
//LEFT
Global.camObjCoord[Global.i+24] = highx;
Global.camObjCoord[Global.i+25] = lowy;
Global.camObjCoord[Global.i+26] = lowz;
Global.camObjCoord[Global.i+27] = highx;
Global.camObjCoord[Global.i+28] = highy;
Global.camObjCoord[Global.i+29] = lowz;
Global.camObjCoord[Global.i+30] = highx;
Global.camObjCoord[Global.i+31] = lowy;
Global.camObjCoord[Global.i+32] = highz;
Global.camObjCoord[Global.i+33] = highx;
Global.camObjCoord[Global.i+34] = highy;
Global.camObjCoord[Global.i+35] = highz;
//RIGHT
Global.camObjCoord[Global.i+36] = highx;
Global.camObjCoord[Global.i+37] = lowy;
Global.camObjCoord[Global.i+38] = highz;
Global.camObjCoord[Global.i+39] = highx;
Global.camObjCoord[Global.i+40] = highy;
Global.camObjCoord[Global.i+41] = highz;
Global.camObjCoord[Global.i+42] = highx;
Global.camObjCoord[Global.i+43] = lowy;
Global.camObjCoord[Global.i+44] = lowz;
Global.camObjCoord[Global.i+45] = highx;
Global.camObjCoord[Global.i+46] = highy;
Global.camObjCoord[Global.i+47] = lowz;
//TOP
Global.camObjCoord[Global.i+48] = highx;
Global.camObjCoord[Global.i+49] = highy;
Global.camObjCoord[Global.i+50] = lowz;
Global.camObjCoord[Global.i+51] = highx;
Global.camObjCoord[Global.i+52] = highy;
Global.camObjCoord[Global.i+53] = lowz;
Global.camObjCoord[Global.i+54] = highx;
Global.camObjCoord[Global.i+55] = highy;
Global.camObjCoord[Global.i+56] = lowz;
Global.camObjCoord[Global.i+57] = highx;
Global.camObjCoord[Global.i+58] = highy;
Global.camObjCoord[Global.i+59] = highz;
//BOTTOM
Global.camObjCoord[Global.i+60] = highx;
Global.camObjCoord[Global.i+61] = lowy;
Global.camObjCoord[Global.i+62] = lowz;
Global.camObjCoord[Global.i+63] = highx;
Global.camObjCoord[Global.i+64] = lowy;
Global.camObjCoord[Global.i+65] = highz;
Global.camObjCoord[Global.i+66] = highx;
Global.camObjCoord[Global.i+67] = lowy;
Global.camObjCoord[Global.i+68] = lowz;
Global.camObjCoord[Global.i+69] = highx;
Global.camObjCoord[Global.i+70] = lowy;
Global.camObjCoord[Global.i+71] = highz;
}
我在 Global $中定义i c $ c>为0,并且总是 0 ...为什么?我正在打电话:
I'm defining i in Global
as 0 and it always remains 0... why? I'm calling:
GLLayer layers = new GLLayer(this);
layers.addcube(-6, -2, 2, 6);
...在另一个类中。
...in another class.
推荐答案
(我不敢相信我在说这个,但是...)
添加一个多维数据集之后,您是否忘记了 Global.i + = 72;
?
Did you perhaps forgot to Global.i += 72;
after adding a cube?
或者,您可以也为每个分配执行了 Global.camObjCoord [Global.i ++] = ...
。这是非常轻微的改进,因为至少您不必写 +1
, +2
, +3
,...,然后最后是 + =
。
Alternately you could've also done Global.camObjCoord[Global.i++] = ...
for each of the assignments instead. This is a very slight "improvement", because at least you won't have to write +1
, +2
, +3
, ... and then +=
at the end.
不过,我担心此建议的弊大于利。如果可能的话,应立即重新设计。一般来说,比使用 Global
和 float []
更好的选择,但是鉴于这是针对OpenGL的,选项可能适用或可能不适用。
I fear that this advise will do more harm than good, though. If at all possible, the design should be reworked immediately. Generally speaking there are much better alternatives than using Global
and float[]
, but given that this is for OpenGL, those options may or may not be applicable.
这篇关于为什么在我添加数字时索引变量没有增加?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!