我想javax.vecmath在我的Java程序中使用但不幸的是它说:
导入javax.vecmath无法解析
我应该在项目中自己添加jar吗?我在哪里可以找到该jar文件?我在Ubuntu/Eclipse Galileo上.
我想使用带有以下布局的scene2d包在LibGDX中创建一个游戏菜单屏幕
| label |
| btn btn btn |
| label |
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
Table table = getTable();
table.add(label1);
table.row();
table.add(button1);
table.add(button2);
table.add(button3);
table.row();
table.add(label2);
table.row();
Run Code Online (Sandbox Code Playgroud)
但不是我想要的,我得到这样的东西:
| label |
| btn btn btn |
| label |
Run Code Online (Sandbox Code Playgroud)
原因是因为每个table.add()方法调用都会创建一个新的单元格.但我想将所有3个按钮放在一个单元格内.我怎样才能达到预期的效果,可能在LibGDX中存在类似的东西LinearLayout或其他什么?
我想用libgdx绘制一些(填充的)多边形用于Android游戏.它不应该充满图形/纹理.我只有多边形(闭合路径)的顶点,并试图与网格的可视化,但在某些时候,这不是最好的解决办法,我想.
我的矩形代码是:
private Mesh mesh;
@Override
public void create() {
if (mesh == null) {
mesh = new Mesh(true, 4, 0,
new VertexAttribute(Usage.Position, 3, "a_position")
);
mesh.setVertices(new float[] { -0.5f, -0.5f, 0
0.5f, -0.5f, 0,
-0.5f, 0.5f, 0,
0.5f, 0.5f, 0 });
}
}
...
@Override
public void render() {
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
mesh.render(GL10.GL_TRIANGLE_STRIP, 0, 4);
}
Run Code Online (Sandbox Code Playgroud)
是否有一个函数或东西以更简单的方式绘制填充多边形?
如何检查2个物体(两个夹具)是否碰撞(重叠)?
我知道ContactListener在它们开始碰撞时和停止时触发方法.但有没有办法在任何特定时刻检查它?喜欢:
if(body1.overlaps(body2))...
Run Code Online (Sandbox Code Playgroud)
其他细节,其中之一是传感器.这是在libgdx中.
我试图在网格上放置一个纹理,但是失败了.我试图渲染这样的东西,可以看到纹理,但我得到了这个,我几乎看不到三角形.我正在运行以下代码:
public class Game implements ApplicationListener{
Mesh mesh;
ShaderProgram shader;
Texture texture;
public static void main(String[] args) {
LwjglApplication app = new LwjglApplication(new Game(), "Mesh Tutorial 1", 800, 600, true);
}
protected static ShaderProgram createMeshShader() {
String vert = Gdx.files.internal("data/VertexShader.txt").readString();
String frag = Gdx.files.internal("data/FragmentShader.txt").readString();
ShaderProgram.pedantic = false;
ShaderProgram shader = new ShaderProgram(vert, frag);
return shader;
}
@Override
public void create() {
if (mesh == null) {
mesh = new Mesh(true, 3, 3,
new VertexAttribute(Usage.Position, 3, ShaderProgram.POSITION_ATTRIBUTE), …Run Code Online (Sandbox Code Playgroud) 有人可以解释LwjglApplication和JglfwApplication之间的区别吗?
Lwgl和Jglf代表2个缩写词是什么?
我开始使用libgdx.我在trunk(StillModelViewerGL20.java)中打开了示例模型加载器.在源代码中,我在render回调中看到了这段代码:
batch.begin();
font.draw(batch, "fps: " + Gdx.graphics.getFramesPerSecond(), 20, 30);
batch.end();
Run Code Online (Sandbox Code Playgroud)
但我在屏幕上看不到任何文字.在此示例中是否需要修复以查看文本?
我试图在屏幕上放一个立方体并点亮它.我想在立方体上加一个阴影.
当我运行我的代码时,我可以看到背景图像,但没有立方体.
我很确定立方体本身是正确的,因为我设法用纯色着色器显示它.
我已经设法让着色器程序编译,但我根本看不到立方体.我不知道GLES/LibGdx是否有运行时异常的机制,但我在日志中看不到任何内容.
我在假设
我试图将我的代码削减到我认为问题所在的位置.如果您还需要查看其他内容,请询问.
shader = new ShaderProgram(
Gdx.files.internal("shaders/phongVertexShader.glsl"),
Gdx.files.internal("shaders/phongFragmentShader.glsl"));
if (!shader.isCompiled()) {
throw new IllegalStateException(shader.getLog());
}
mesh = Shapes.genCube();
mesh.getVertexAttribute(Usage.Position).alias = "a_position";
mesh.getVertexAttribute(Usage.Normal).alias = "a_normal";
Run Code Online (Sandbox Code Playgroud)
public void onRender() {
Gdx.gl.glClearColor(0, 0, 0, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
batch.setProjectionMatrix(camera.combined);
angle += Gdx.graphics.getDeltaTime() * 40.0f;
float aspect = Gdx.graphics.getWidth()
/ (float) Gdx.graphics.getHeight();
projection.setToProjection(1.0f, 20.0f, 60.0f, aspect);
view.idt().trn(0, 0, -2.0f);
model.setToRotation(axis, angle);
combined.set(projection).mul(view).mul(model);
Gdx.gl20.glViewport(0, 0, Gdx.graphics.getWidth(),
Gdx.graphics.getHeight());
shader.begin();
float[] light = {10, 10, 10};
shader.setUniformMatrix("mvpMatrix", combined); …Run Code Online (Sandbox Code Playgroud) 我无法弄清楚如何管理复选框图像大小.当然,可以在我的纹理图集中创建不同大小的图像并采取适当的图像,但我不想这样做.
这是我的代码:
AtlasRegion checkboxOn = AssetsHelper.textures.findRegion("checked");
AtlasRegion checkboxOff = AssetsHelper.textures.findRegion("unchecked");
CheckBoxStyle checkBoxStyle = new CheckBoxStyle();
checkBoxStyle.font = AssetsHelper.font66yellow;
checkBoxStyle.checkboxOff = checkboxOff;
checkBoxStyle.checkboxOn = checkboxOn;
CheckBox cbSound = new CheckBox(" Sound", checkBoxStyle);
Run Code Online (Sandbox Code Playgroud)
cbSound对象没有这样的方法来重新定义复选框的图像,但是有方法getImage(),但似乎它也不起作用.这不起作用:
cbSound.getImage().width = 120;
cbSound.getImage().height = 120;
Run Code Online (Sandbox Code Playgroud)
仅供参考:例如,当我想绘制图像时,我确实喜欢这样:
batch.draw(textureRegion, 0, 0, widthIwant, heightIwant);
Run Code Online (Sandbox Code Playgroud)
但是在CheckBox类中只覆盖了这个(没有设置宽度和高度):
public void draw (SpriteBatch batch, float parentAlpha) {
image.setRegion(isChecked ? style.checkboxOn : style.checkboxOff);
super.draw(batch, parentAlpha);
}
Run Code Online (Sandbox Code Playgroud)
问题:如何更改复选框图像的宽度和高度?
提前致谢.
我用libGDX setup ui创建了一个项目.该项目在Eclipse中运行良好但是当我在Android Studio中导入它时,android项目MainActivity.java抛出了4个异常:
java: cannot access com.badlogic.gdx.Application
class file for com.badlogic.gdx.Application not found
java: cannot find symbol
symbol: variable super
location: class com.vestrel00.nekko.MainActivity
java: cannot find symbol
symbol: method initialize(com.vestrel00.nekko.KFNekko,com.badlogic.gdx.backends.android.AndroidApplicationConfiguration)
location: class com.vestrel00.nekko.MainActivity
java: method does not override or implement a method from a supertype
Run Code Online (Sandbox Code Playgroud)
有没有人有办法解决吗?