gpt4 book ai didi

java - 在 Android Java 中使用 OpenGL 声明要绘制的 Float 数组时出错

转载 作者:行者123 更新时间:2023-11-29 05:32:42 25 4
gpt4 key购买 nike

我是一名 Android 开发新手,我正在尝试使用 OpenGL ES 2.0 创建一个简单的 AirHockey 游戏,一切都很顺利,直到我定义了我要绘制的顶点数组。

package com.AirHockey.android;

import static android.opengl.GLES20.GL_COLOR_BUFFER_BIT;
import static android.opengl.GLES20.glClear;
import static android.opengl.GLES20.glClearColor;
import static android.opengl.GLES20.glViewport;

import android.opengl.GLSurfaceView.Renderer;

import java.nio.FloatBuffer;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

public class AirHocky_ActivityRenderer implements Renderer {

private static final int POSITION_COMPONENT_COUNT = 2;
private static final int BYTES_PER_FLOAT = 4;
private final FloatBuffer vertexData;

float[] tableVerticesWithTriangles = {
// Triangle 1
0f, 0f,
9f, 14f,
0f, 14f,
// Triangle 2
0f, 0f,
9f, 0f,
9f, 14f,
// Line 1
0f, 7f,
9f, 7f,
// Mallets
4.5f, 2f,
4.5f, 12f
};

vertexData = ByteBuffer
.allocateDirect(tableVerticesWithTriangles.length * BYTES_PER_FLOAT)
.order(ByteOrder.nativeOrder())
.asFloatBuffer();

vertexData.put(tableVerticesWithTriangles);

public void onSurfaceCreated(GL10 glUnused, EGLConfig config) {
glClearColor(1.0f, 0.0f, 0.0f, 0.0f);
}

public void onDrawFrame(GL10 arg0) {
glClear(GL_COLOR_BUFFER_BIT);
}

public void onSurfaceChanged(GL10 arg0, int width, int height) {
glViewport(0, 0, width, height);
}

}

问题就在 float 数组“tableVerticesWithTriangles”之后,它说的是“,”而不是“;”,也有问题 vertexData.put(tableVerticesWithTriangles)它突出显示“。”和数组名称;

提前致谢。

最佳答案

你不能做这样的事情:

public class Something {
int a;
int b;
a = 3;
// ...
}

相反,你应该这样做:

public class Something {
int a = 3;
int b;
// ...
}

您正在对 vertexData 执行完全相同的操作,因此您需要修复它。

此外,您在任何方法之外调用 put() 方法,我认为这是行不通的。

此外,vertexDatafinal,因此无论如何您都无法放入任何内容。

关于java - 在 Android Java 中使用 OpenGL 声明要绘制的 Float 数组时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20586031/

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