我正在开发一个个人Java OpenGL(JOGL)项目,我正在使用一些带有独立绘图函数和顶点的自定义对象.
public class Cube extends PhysicalObject {
public void draw(GL gl) {
gl.glColor3f(1.0f, 1.0f, 0.0f);
gl.glEnableClientState(GL.GL_VERTEX_ARRAY); // Enable Vertex Arrays
gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY);
gl.glVertexPointer(3, GL.GL_FLOAT, 0, vertices);
gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, texCoords);
gl.glDrawArrays(GL.GL_QUADS, 0, 4*6);
gl.glDisableClientState(GL.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL.GL_TEXTURE_COORD_ARRAY);
}
Run Code Online (Sandbox Code Playgroud)
然后我循环遍历一大堆这些立方体,调用它们的绘图函数.我的问题如下:我应该将所有顶点收集到一个大的glDrawArrays调用,即将所有顶点收集到一个大数组并绘制它?它对性能和fps有多大帮助?
我正在使用LWJGL和Slick框架将Textures加载到我的OpenGL应用程序中.
我正在使用这个图片: 
这个代码导入并利用纹理:
flagTexture = TextureLoader.getTexture("PNG", ResourceLoader.getResourceAsStream("japan.png"));
Run Code Online (Sandbox Code Playgroud)
......
flagTexture.bind();
GL11.glColor3f(1.0f, 1.0f, 1.0f);
GL11.glPushMatrix();
GL11.glTranslatef(0.0f, 0.0f, -10.0f);
GL11.glBegin(GL11.GL_QUADS);
GL11.glTexCoord2f(0.0f, 0.0f);
GL11.glVertex2f(0.0f, 0.0f);
GL11.glTexCoord2f(1.0f, 0.0f);
GL11.glVertex2f(2.5f, 0.0f);
GL11.glTexCoord2f(1.0f, 1.0f);
GL11.glVertex2f(2.5f, 2.5f);
GL11.glTexCoord2f(0.0f, 1.0f);
GL11.glVertex2f(0.0f, 2.5f);
GL11.glEnd();
GL11.glPopMatrix();
Run Code Online (Sandbox Code Playgroud)
但最终结果变成了这样:

我没有使用任何特殊设置,如GL_REPEAT或类似的东西.这是怎么回事?如何使纹理填充给定的顶点?
我试图用我的应用程序设置我导入到iphone日历中的事件的可用性.我使用这段代码:
[event1 setAvailability:EKEventAvailabilityFree];
Run Code Online (Sandbox Code Playgroud)
当我将我的iphone同步到我的iCal时,我检查事件的可用性,并说"忙".Xcode确实要求一个整数,但是free选项没有.当我运行此代码时,我没有错误,有人可以帮助弄清楚什么是错的.
在cocos2d中使用默认(空白)interval参数创建计时器时:
[self schedule:(update)];
//Not a 100% sure this code is correct, but you know what i mean
Run Code Online (Sandbox Code Playgroud)
计时器运行的间隔是什么,我认为是1/60,但我不确定.