Tag: libgdx

libgdx显示Cyrillic

我有libgdx显示Cyrillic的以下问题。 我举个例子: 这工作: System.out.println(“абцдеф”); 但它没有显示: field = new TextField(“абцдеф”, style); 并尝试没有成功。 try { mmm = new String(t.getBytes(), “UTF-8”); } catch (UnsupportedEncodingException e) { // Will it ever be thrown? } field = new TextField(mmm, style); 如果有人有解决方案,我会很高兴,很多人会很感激。

Libgdx – 检查按键是否被按下?

我正在使用java libgdx游戏库,我很好奇,如果我能判断一个键是否正在被HELD,而不是按下并放手。 我需要知道这一点,因为如果只是按下它我将播放一个较短的mp3文件,如果它被保持,我将播放一个较长的mp3文件。

单击libGDX中的Actor

我的游戏中有一个叠加层,它包含一个屏幕图像和一组“在屏幕上”的按钮。 截图: 我的Screen有一个Stage 。 Stage有一组Group对象,我认为它们是图层。 第一组具有背景,中间的组具有游戏元素,最前面的组具有屏幕覆盖。 叠加层由一个Image ,屏幕本身和四个TextButton (每个角落一个)组成。 如果不是因为我不能点击游戏层中的任何东西,只要叠加层中的图像位于其前面,这就行得很好。 即使图像是透明的,它仍然可以在到达游戏层之前拦截所有触摸事件。 所以我的问题是:如何让叠加层中的图像忽略所有触摸事件,这样游戏层就可以获得它们,并且可以实际玩游戏? 我自己尝试了一个想法,但我不确定这是正确的方法:我尝试将图像创建为自定义Actor ,其高度/宽度始终设置为0,但仍然(通过重载draw()方法)在整个屏幕上绘制图像。 这非常有效,除了由于某种原因图像被绘制在较低层中的元素后面的事实。 屏幕截图: https : //dl.dropboxusercontent.com/u/1545094/Screen2.png 在这个屏幕截图中,我打开了一个指令消息框,它将自己添加到其中一个游戏层(第6组)。 请注意,覆盖层(即组7)中的所有按钮都位于消息框的前面,但屏幕框(它是一个自定义Actor)会以某种方式在消息框后面绘制。 这是为什么? 注意:如果我采用完全相同的情况,并将我的自定义actor更改为常规图像,则一切都正确绘制,但是我不能再点击较低层中的任何内容,如上所述。 这是我的自定义角色,如果有人能够理解它: public class ClickThroughImage extends Actor { BaseDrawable d; public NonexistingImage(BaseDrawable d){ this.d = d; setSize(0, 0); } @Override public void draw(SpriteBatch batch, float parentAlpha) { d.draw(batch, 0, 0, 1024, 768); //Yes, […]

如何在LibGDX中使ProgressBar工作?

我试图了解如何在LibGDX中使用ProgressBar。 我创建了酒吧,但我不知道如何让它成功。 我想复制旋钮,以便在60秒内填充条形图(背景线)。 我知道如何管理时间,但ProgressBar类中没有方法用旋钮填充栏。 至少,我还没有看到它(或者我不明白怎么样)。 这是我的代码: ProgressBar的代码: skin = new Skin(); Pixmap pixmap = new Pixmap(10, 10, Format.RGBA8888); pixmap.setColor(Color.WHITE); pixmap.fill(); skin.add(“white”, new Texture(pixmap)); textureBar = new TextureRegionDrawable(new TextureRegion(new Texture(Gdx.files.internal(“barGreen_horizontalMid.png”)))); barStyle = new ProgressBarStyle(skin.newDrawable(“white”, Color.DARK_GRAY), textureBar); bar = new ProgressBar(0, 10, 0.5f, false, barStyle); bar.setPosition(10, 10); bar.setSize(290, bar.getPrefHeight()); bar.setAnimateDuration(2); stage.addActor(bar); 我知道我可以用方法setValue(float)移动旋钮。 但我想要的是用旋钮的纹理填充条形。 这是一个酒吧的截图和旋钮。 任何人都可以帮我理解这个吗? 提前致谢。

在Android Studio 3.1中构建失败,gradle 4.4类签名者信息与同一包中其他类的签名者信息不匹配

我正在使用libgdx在Android Studio 3.1中创建一个项目,我无法构建我的项目,因为它说: class “org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings”‘s signer information does not match signer information of other classes in the same package 但我不使用“bouncycastle”或我检查了很多关于这个问题的网页和主题,但我没有找到任何解决方案。 此外,我没有任何jar文件,我从来没有尝试签署的东西,我只是想建立我的项目请帮助我们,我真的坚持它

Libgdx旋转ModelInstance

我正在开发我的第一个libgdx 3D游戏。 到目前为止,我可以在迷宫般的(硬编码)世界中移动,碰撞检测工作。 我也有一些工作A *寻路的敌人。 我还使用FBX-Conv来获取.g3db文件,这是我的第一个(相当难看的)Blender模型。 由于某种原因,模特在地板上而不是站立。 当我将它导出为.fbx时,我可能有一些错误的设置。 为此我尝试rotate()他在z-Axis modelInstance.transform.rotate(Vector3.Z, 90) rotate() 90度,在我的Screen的show()方法中调用: modelInstance.transform.rotate(Vector3.Z, 90) ,加载Model并实例化我的ModelInstance (在给定的位置)。 由于某种原因,它没有旋转。 然后我将rotate方法放在render(delta) ,认为它现在每个渲染循环旋转90度。 但它反而停滞不前,就像它应该的那样。 好的,但是现在我希望modelInstance rotate到它实际看起来的位置,这意味着它应该旋转,这取决于我的enemie的Vector3 direction 。 我已经准备好使用modelInstance.transform.setTotranslation(enemie.getPosition())来完善自己的位置。 所以我想我也可以使用modelInstance.transform.setToRotation(Vector3 v1, Vector3 vs) ,其中v1 = enemie.getPosition()和v2 = enemie.getPosition().add(enemie.getDirection) 。 请注意, position Vector不会直接使用,因为它会在add()方法中更改其值。 这样做,我不再看到对象,这意味着它的位置也是错误的。 为什么会这样? 我如何通过使用direction向量来旋转我的modelInstance ? 非常感谢。

libgdx如何将BitmapFont缩放到更改屏幕大小?

我想要的是在更改屏幕尺寸时相应地改变尺寸的位图字体。 我的意思是在我的电脑上,字体看起来相当大,但在我的手机上,它是一个难以阅读的小字体。 我可以改变大小,但我希望它在所有屏幕上都看起来相似,而不是在一个屏幕上大而在另一个屏幕上小一些。 这是我的代码,看看我有什么用处: public void render() { //score system scoreFont.setColor(1.0f, 1.0f, 1.0f, 1.0f); scoreBatch.begin(); scoreFont.draw(scoreBatch, Long.toString(getScore()), 10, Gdx.graphics.getHeight() – 10); scoreFont.setScale(3, 3); scoreBatch.end(); } public void resize(int width, int height) { camera.viewportWidth = 450; camera.viewportHeight = 250; camera.update(); stage.setViewport(450, 250, true); stage.getCamera().translate(-stage.getGutterWidth(), -stage.getGutterHeight(), 0); }

如何使用lib gdx导入IntelliJ中的通用补间引擎

好吧..我正在尝试为我的手机游戏创建一个启动画面。 即时通讯使用lib gdx库来创建我的游戏。 我有一个导入我的精灵飞溅的通用补间引擎的问题。 我该怎么办。 我已经下载了通用补间引擎并将其解压缩到我的项目的ios,android,core和root中的“​​libs”文件夹中。我为每个依赖项复制并粘贴这些行: project(“:core”){ fileTree(dir:’D:/ game / core / libs’,包括:’tween-engine-api.jar’) 编译fileTree(dir:’D:/ game / core / libs’,包括:’tween-engine-api-> sources.jar’) project(“:desktop”){ 编译fileTree(dir:’D:/ game / desktop / libs’,包括:’tween-engine-api.jar’) 编译fileTree(dir:’D:/ game / desktop / libs’,包括:’tween-engine-api-> sources.jar’) project(“:ios”){ 编译fileTree(dir:’D:/ game / ios / libs’,包括:’tween-engine-api.jar’) 编译fileTree(dir:’D:/ game / ios / libs’,包括:’tween-engine-api-> sources.jar’) project(“:android”){ 编译fileTree(dir:’D:/ game / android / libs’,包括:’tween-engine-api.jar’) […]

Libgdx为3D游戏渲染地板

在我的第一个3D游戏中,我现在想渲染地板,实际上是y = 0的平面(不是libgdx Plane )。 我想为它添加一个Texture ,所以我可以在每个级别有不同的楼层。 现在我的问题是:创建和渲染这个纹理地板的最佳方法是什么? 我想过使用用ModelBuilder制作的基本Block Models ,然后添加了Texture ,但因为我只能看到6个面中的一个,2d Texture就够了,所以我想到了一个Plane 。 我可以在Plane添加Texture ,因为它在3D房间是无限的脸吗? 我当时想到的最后一件事是Decal 。 Decal是我要找的吗? 我该如何使用它们? 或者你有其他解决方案吗? 任何教程或其他帮助都会很棒。 谢谢

libgdx – Group.draw中的ShapeRenderer渲染颜色错误

MyGroup : public class GShape extends Group{ private ShapeRenderer shape; public GShape() { super(); shape = new ShapeRenderer(); } @Override public void draw(SpriteBatch batch, float parentAlpha) { super.draw(batch, parentAlpha); shape.begin(ShapeType.Line); Gdx.gl10.glLineWidth(5); shape.setColor(1, 1f, 1f, 1f); shape.line(0, 0, 200, 100); shape.end(); } } 主要 : public class GameControl implements ApplicationListener { private Stage stage; private GShape […]