gpt4 book ai didi

android - OpenGL ES 移动对象

转载 作者:行者123 更新时间:2023-11-30 03:11:37 24 4
gpt4 key购买 nike

我正在编写一个 Android OpenGL ES 1.0 游戏。在这里我想用这个方法在游戏中移动一个对象:

public void move(float dx, float dy, float dz)
{
for(int i=0; i < objectVerts.length; i+=3)
{
objectVerts[i + 0] += dx;
objectVerts[i + 1] += dy;
objectVerts[i + 2] += dz;
}
}

我的渲染方法是这样的:

gl.glViewport(0, 0, getViewportWidth(), getViewportHeight());
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
float aspectRatio = (float)activity.getViewportWidth() / activity.getViewportHeight();
GLU.gluPerspective(gl, 67, aspectRatio, 1, 100);

gl.glMatrixMode( GL10.GL_MODELVIEW );
gl.glLoadIdentity();
GLU.gluLookAt(gl, 0, 0, 1.5f, 0, 0, 0, 0, 1, 0);

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);

gl.glVertexPointer(3, GL10.GL_FLOAT, 0, vertexBuffer);
gl.glDrawArrays(GL10.GL_TRIANGLES, 0, objectVerts.length / 3);

但如果我调用 moves 方法,对象不会移动或改变其位置。有什么想法吗?

最佳答案

您必须将新顶点重新上传到 GL 引擎(使用 glVertexPointer 并使用 glDrawArrays 重绘)。 move 函数在 CPU 上运行,GL 引擎无法知道顶点发生了变化。

关于android - OpenGL ES 移动对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20857260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com