小编Ale*_*drs的帖子

Libgdx - 如何在scene2d中的正确位置绘制填充矩形?

我正在使用scene2d.这是我的代码:

    group.addActor(new Actor() {
        @Override
        public Actor hit(float arg0, float arg1) {return null;}
        @Override
        public void draw(SpriteBatch batch, float arg1) {
            batch.end();
            shapeRenderer.begin(ShapeType.FilledRectangle);
            shapeRenderer.setColor(Color.RED);
            shapeRenderer.filledRect(0, 0, 300, 20);
            shapeRenderer.end();
            batch.begin();
        }
    });
Run Code Online (Sandbox Code Playgroud)

问题是它相对于屏幕绘制了这个矩形(x = 0,y = 0),但我需要它相对于我的绘制.但是,如果我绘制其他实体:

batch.draw(texture, 0, 0, width, height);
Run Code Online (Sandbox Code Playgroud)

它正确地绘制了(x = 0,y = 0)相对于我的组(从组的左下角0,0像素).

任何建议如何在scene2d中实现形状绘制?有人可以解释为什么这两个调用的工作方式不同吗?

drawing rectangles shapes game-engine libgdx

12
推荐指数
3
解决办法
5万
查看次数

如何在Libgdx中管理多个屏幕的后退按钮?

如果有一些方法可以管理Libgdx中的后退按钮?

例如在Andengine中我实现了这样:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {  
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {          
          switch (currentScene) {
               case SPLASH:
                   break;
               case MENU:
                   Process.killProcess(Process.myPid());
                   break;
               case WORLDMENU:
                       start(MENU);
                       break;
...
...
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我不知道如何在这里做,因为ApplicationListener只有create,show,render ...我试过这个:

if (Gdx.input.isButtonPressed(Keys.BACK)){
    new ScreenChangeTask(MyScreen.SPLASH);
}
Run Code Online (Sandbox Code Playgroud)

但它仍然关闭我的申请.

仅供参考:我class Controller extends Game和我public void setScreen (Screen screen)用来在屏幕之间切换.

java back libgdx

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

在libgdx UI中设置复选框图像的大小

我无法弄清楚如何管理复选框图像大小.当然,可以在我的纹理图集中创建不同大小的图像并采取适当的图像,但我不想这样做.

这是我的代码:

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)

问题:如何更改复选框图像的宽度和高度?

提前致谢.

java checkbox game-engine libgdx

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

如何使用我的凭据或特殊生成的ID和密码在google api中进行身份验证?

我想从我的个人日历中获取所有活动.我已经尝试了几个小时所有类型的auth类型:我成功地使用回调验证,我应该登录到我的谷歌帐户,然后谷歌重定向回我的网站. - 但这不是我需要的.此外,我尝试使用默认凭据,令我惊讶的是,我无法访问我的日历,这是什么样的逻辑.

基本上,它在Spotify中如何为我工作:在Spotify中可以在我的帐户中生成客户端ID和密码.之后,我从我的代码中发送带有base64(client:password)的HTTP,并从我的代码接收令牌,我用它来查询某些实体.

但在谷歌API我没有找到这样的解决方案.也许有人可以建议如何进行身份验证?

php google-calendar-api google-api google-oauth google-oauth2

5
推荐指数
1
解决办法
211
查看次数