小编Leo*_*pez的帖子

Libgdx如何获取目录中的文件列表?

所以我试图用文件handle.list()方法获取目录中的文件列表,但即使目录中有文件,它也会返回一个空列表.对我来说似乎很奇怪的是它确实可以在设备上运行,但它在桌面上不起作用.我想我知道问题是什么,但我不知道如何解决它.在方法描述中,它说"在桌面上,类路径上的目录的FileType.Internal句柄将返回零长度数组.",但没有其他方法,所以你认为我能做什么?

java file-io libgdx

15
推荐指数
1
解决办法
9120
查看次数

如何翻转像素图以绘制到libgdx中的纹理?

所以我要做的是通过将pixmaps绘制到纹理来为我的游戏生成背景图像.到目前为止,我可以做到这一点,但现在我需要绘制在X轴或Y轴上翻转到纹理的像素图.但是我找不到任何可以做到的事情.pixmap类不提供该功能.然后我想我可以在纹理上绘制一个翻转的纹理区域,但到目前为止我还没有找到如何做到这一点.所以我想知道我怎么能做这样的事情,是否可以用其他java库翻转png图像,然后从翻转的图像创建一个像素图?

java textures flip libgdx

10
推荐指数
1
解决办法
2664
查看次数

Libgdx SpriteBatch是否会绘制到StencilBuffer?

我正在使用libgdx和OpenGL ES 1.0,我想知道SpriteBatch是否可以写入/绘制到模板缓冲区.我一直在尝试写它并且我根本没有得到任何结果,我没有使用模板缓冲区的经验,但我已经阅读了很多,所以如果我在后面的任何事情上错了,请纠正我.基本上我想要做的是用模板缓冲区绘制带有SpriteBatch的纹理,这样当我绘制其他东西时(禁用模板缓冲区)它只会在模板缓冲区等于1的区域上绘制.

这是我想要的结果:如果我将一个星形的纹理绘制到模板缓冲区,然后我在颜色缓冲区中绘制一个红色纹理,我希望红色纹理省略星形在模板缓冲区中的像素.

到目前为止这是我的代码:

   batch.begin();
   Gdx.gl10.glEnable(GL10.GL_STENCIL_TEST);
   Gdx.gl10.glEnable(GL10.GL_ALPHA_TEST);
   Gdx.gl10.glStencilFunc(GL10.GL_ALWAYS, 0x1, 0xffffffff);
   Gdx.gl10.glStencilOp(GL10.GL_REPLACE, GL10.GL_REPLACE, GL10.GL_REPLACE);
   Gdx.gl10.glColorMask(false, false, false, false);

   batch.draw(myShape, 100, 100); //draw to the stencil buffer a shape (texture region)

   batch.end();
   batch.begin();

   Gdx.gl10.glColorMask(true, true, true, true);
   Gdx.gl10.glStencilOp(GL10.GL_KEEP, GL10.GL_KEEP, GL10.GL_KEEP);

   // draw where the shape has NOT been drawn
   Gdx.gl10.glStencilFunc(GL10.GL_NOTEQUAL, 0x1, 0xff);

   batch.draw(BackGroundLayer, 0, 0);// draw background

   Gdx.gl10.glDisable(GL10.GL_STENCIL_TEST);
Run Code Online (Sandbox Code Playgroud)

java opengl-es stencil-buffer libgdx

6
推荐指数
1
解决办法
1166
查看次数

Libgdx如何翻转BitmapFont?

我使用BitmapFont来渲染文本问题是我决定使用TrueTypeFontFactory.createBitmapFont方法来创建BitmapFont,所以我可以使用自己的字体而不是默认字体.在使用TrueTypeFontFactory.createBitmapFont方法之前,文本呈现没有任何问题,除非它在y轴上被翻转我只是创建一个BitmapFont并在构造函数中传递true以便翻转它,但现在我正在使用TrueTypeFontFactory我不能这样做,我似乎无法在创建BitmapFont后这样做,因为没有方法可以这样做.所以我想知道在这种情况下如何翻转字体?

fonts bitmap-fonts libgdx

6
推荐指数
1
解决办法
3310
查看次数

Libgdx屏幕没有交换

我是Libgdx的新手,我写了一个扩展Game类的类,事实是来自Game的setScreen()方法没有交换屏幕,因为在我设置屏幕之后我的游戏仍然只渲染渲染方法中的内容从游戏类而不是屏幕类的渲染方法中的内容.这是代码:

如果运行此代码,即使我在用户触摸(点击)屏幕时更改屏幕,我也只会看到红色屏幕

class myGame extends Game
{
    GameScreen myOtherScreen;

    public void create() 
    {
       //create other screen
       myMenuScreen = new GameScreen();
    }

    public void render(float delta) 
    {   
        // change screens if screen touched
        if(Gdx.input.justTouched())
            setScreen(myOtherScreen);

            //render red screen
        Gdx.gl.glClearColor(1, 0, 0, 1);
        Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    }
    .
    . //other methods
    .
}

// ======= Screen Class ========

public class GameScreen implements Screen
{
     @Override
     public void render(float delta) 
     {
            //render green screen
         Gdx.gl.glClearColor(0, 1, 0, 1);
         Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);      
     }
     .
     . //other methods
     . …
Run Code Online (Sandbox Code Playgroud)

java screen libgdx

4
推荐指数
2
解决办法
6399
查看次数

libgdx为什么舞台相机不动?

所以我在我的游戏中使用了libgdx的舞台类到目前为止我在舞台上添加了一个演员,它只是为屏幕绘制了一个背景,我遇到的问题是当我移动舞台的相机来模拟滚动屏幕时(背景图像大于屏幕)相机不会移动.现在让我疯狂的是,当我在台式机启动器上运行时它会工作,但每当我在手机上运行它时它就不会滚动.我真的不知道会出现什么问题.我随后调用了移动摄像机的方法,因为每当调用它时,我都会将方法的名称记录到日志中,并且它会被调用.此外,我甚至记录了相机的位置并且它发生了变化,但只有当我在桌面上运行时,如果我在手机上运行它会记录相同的位置.我不知道这是不是一个bug因为我觉得很奇怪,它只能在桌面启动器上运行,是的,android启动器和桌面启动器都是使用相同的ApplicationListener实例初始化的.有什么建议?提前致谢.

这是简化的代码:

public void Create()
{
GameStage = new Stage(2000, 2000, true);

GameCamera = new OrthographicCamera(2000, 2000);
GameCamera.setToOrtho(true, 2000, 2000);

GameStage.setCamera(GameCamera);
GameStage.setViewport(2000, 2000, true);
}

public void MoveCamera()//it gets called when user drags across the screen
{
GameStage.getCamera().translate(x, y, 0);
GameStage.getCamera().update();
}


public void render()
   {
      //the background actor has been added at this point

      Gdx.gl.glClearColor(0, 0, 0, 1);
      Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

      GameStage.act(Gdx.graphics.getDeltaTime());
        GameStage.draw();

   }
Run Code Online (Sandbox Code Playgroud)

camera android libgdx

2
推荐指数
1
解决办法
3993
查看次数