Tag: libgdx

LibGDX路径(CatmullRomSpline)恒速

我正在尝试使用LibGDX CatmullRomSpline在路径上实现恒定速度,并且我在使其工作时遇到问题。 我已经尝试过很多关于这个主题的研究,包括阅读LibGDX维基,但他们对实现恒定速度的解释并没有真正意义,我无法让他们的方法发挥作用。 https://github.com/libgdx/libgdx/wiki/Path-interface-&-Splines在我的例子中,导数值非常大(数百),所以当将0到0之间的数除以导数时非常小,运动非常慢,但仍然不恒定。 所以我不确定他们的例子是如何运作的。 在我的例子中,我有几个视觉辅助工具与球的速度一致,随着速度的增加,屏幕底部的条形长度增加,随着速度的增加,颜色也会从白色变为红色。 在MyPath.java的act()方法中,我从[1]和[2]开始注释掉了两个部分。 第一个是正常的,通过路径可变速度,第二个是我尝试使LibGDX wiki恒速工作失败。 所以只需取消注释这两行就可以在两个版本之间切换。 我对恒速的想法包括根据路径的总长度计算速度(使用样条上的约长度(1000)方法),然后使用导数函数确定给定时刻的实际速度,并调整百分比发送到样条曲线的值以补偿速度变化,以使速度恒定。 但是,我不太明白衍生函数实际上代表什么。 我之前发布了关于衍生函数的问题,但根据我收到的评论,我认为可能更容易询问实现恒定速度。 这是我之前关于导数函数的问题: LibGDX CatmullRomSpline导数意义? 关于如何在我的例子中实现恒定速度的任何想法(或解释CatmullRomSpline的衍生函数实际上代表什么,以便我可以更好地理解如何使用它)将不胜感激。 对于任何想要运行该程序的人,这里是我为我的示例创建的两个图像文件(将这些文件添加到assets文件夹的根目录): http : //dropshots.com/Tekker/date/2015-09- 19 这是我的示例代码: DesktopLauncher.java 🙁将桌面窗口宽度和高度更改为1000) public class DesktopLauncher { public static void main (String[] arg) { LwjglApplicationConfiguration config = new LwjglApplicationConfiguration(); config.width = 1000; config.height = 1000; new LwjglApplication(new TEST(), config); } } TEST.java: public […]

LibGDX中的music.class的TweenAccessor

我一直想知道:是否可以在LibGDX中使用通用Tween引擎 – 例如 – 更改歌曲的音量? 我编写了自己的MusicAccessor,其代码类似于我的SpriteAccessor,它实际上适用于Sprite.class,但是当涉及到音乐对象时 – 它总是会出现同样的错误: java.lang.RuntimeException: No TweenAccessor was found for the target 问题是,我通过以下方式注册我的访问者: Tween.registerAccessor(Music.class,new MusicAccessor()); 我很确定它实际上已经注册,如System.out.println(Tween.getRegisteredAccessor(Music.class)); print: the.name.of.my.packages.MusicAccessor@14bb523 。 老实说,我被困住了。 音乐文件本身是.mp3格式,我由资产管理器加载它。 所以,我的问题是:为什么Tween引擎无法正确识别我的音乐对象的类? 有没有办法使它工作或我是否坚持定期定时器随时间改变音量? 更改格式或以不同方式加载音乐文件有帮助吗?

Libgdx:是否有一种简单的方法可以将按钮上每个轴的文本居中?

我一直试图想出一种方法来将文本放在按钮上,但找不到一种简单,多用途的方法。 我可以做到,但它只适用于某个字符串,而不适用于任何字符串。 我想知道是否有办法将任何字符串置于按钮上。 在这种情况下我的按钮是185×50。 我已经能够将这个按钮集中在屏幕上,如下所示: buttonX = WIDTH / 2 – (screen.getRegionWidth() / 2); buttonY = HEIGHT / 2 – (screen.getRegionHeight() / 2); 任何帮助将非常感激。 🙂

如何使用LibGDX制作TextButtons?

我在youtube上按照了一些教程为我的libgdx游戏制作按钮,并遇到了无法加载我的button.pack的问题。 stage = new Stage(); black = new BitmapFont(Gdx.files.internal(“font/black.fnt”)); white = new BitmapFont(Gdx.files.internal(“font/white.fnt”)); atlas = new TextureAtlas(Gdx.files.internal(“buttons/button.pack”)); skin = new Skin(atlas); table = new Table(skin); table.setBounds(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); TextButtonStyle textButtonStyle = new TextButtonStyle(); textButtonStyle.up = skin.getDrawable(“buttons/buttonup.png”); textButtonStyle.over = skin.getDrawable(“buttons/buttonpressed.png”); textButtonStyle.down = skin.getDrawable(“buttons/buttonpressed.png”); textButtonStyle.pressedOffsetX = 1; textButtonStyle.pressedOffsetY = -1; textButtonStyle.font = black; buttonPlay = new […]

在libgdx中,如何在矩形顶部附加圆形?

我创建了一个主体,我创建了两个独立的灯具,一个灯具创建一个矩形形状,另一个灯具创建一个圆形。 但是当我使用.createfixture时,它将圆圈放在矩形的中心,我希望圆形顶部像圆棒一样。 这是我的代码不知道该做什么… rectangleBodyDef = new BodyDef(); rectangleBodyDef.type = BodyType.DynamicBody; rectangleBodyDef.position.set(10,20); rectangleBody = world.createBody(rectangleBodyDef); rectangleBodyShape = new PolygonShape(); rectangleBodyShape.setAsBox(2f, 0.75f); rectangleBodyFixtureDef = new FixtureDef(); rectangleBodyFixtureDef.shape = rectangleBodyShape; rectangleBodyFixtureDef.restitution = 0.8f; rectangleBody.createFixture(rectangleBodyFixtureDef); /**********************CREATING THE SECOND BODY (CIRCLE BODY) ************/ circleShape = new CircleShape(); circleShape.setRadius(0.75f); circleFixtureDef = new FixtureDef(); circleFixtureDef.shape = circleShape; circleFixtureDef.restitution = 0.8f; rectangleBody.createFixture(circleFixtureDef);

无法在libgdx中批处理多维数据集

我正在尝试开发一种游戏,我在屏幕上渲染多达300个立方体。 在为每个多维数据集创建新的modelInstance时,modelBatch的性能非常糟糕。 据我所知,没有3D批处理将所有立方体批量分配到一个绘图调用。 所以我拼命地尝试以某种方式批量处理它们。 这个问题与此直接相关: LibGDX 3D增加性能 发布的答案成功批量处理所有多维数据集,但是当添加环境以获得某些照明时,看起来立方体缺少侧面或其他东西是错误的。 下图是: 这是我的立方体类(几乎从上面的答案复制) public class Cube { int index; int vertexFloatSize; int posOffset; int norOffset; boolean hasColor; int colOffset; private Vector3 position = new Vector3(); private Matrix4 rotationTransform = new Matrix4().idt(); private Color color = new Color(); public float halfWidth, halfHeight, halfDepth; private boolean transformDirty = false; private […]

LibGdx如何重复背景?

几天前我想出了如何在LibGdx中进行一些滚动。 现在我正在努力做一些相关的事情。 我想重复背景。 我的滚动跟随一艘船(是一个s [王牌船游戏]。 在后台,有一张空间照片作为纹理加载。 当船到达backgorund的末端时,它继续前进并且不再有背景。 我已经阅读过关于包装的内容,但我并不了解它的工作原理。 我这样做了: px=new Pixmap(Gdx.files.internal(“fondo.jpg”)); background=new Texture(px); background.setWrap(TextureWrap.Repeat, TextureWrap.Repeat); 然后,在我的渲染方法中 spriteBatch.begin(); spriteBatch.draw(background,0,0,500,50); drawShip(); spriteBatch.end(); 当然它不起作用,它只绘制一次背景。 我不知道如何使这个包装方法工作。 有帮助吗? 解 我想到了。 这不是一个很好的代码,但它的工作原理。 首先,我使用相同的图像声明两个纹理 bck1=new Texture(Gdx.files.internal(“fondo.jpg”)); bck2=new Texture(Gdx.files.internal(“fondo.jpg”)); 我还声明了两个这样的变量来指定每个bck位置的X值 int posXBck1=0,posXBck2=0; 然后我在Render()中使用它 public void calculoPosicionFondos(){ posXBck2=posXBck1+ANCHODEFONDO; if(cam.position.x>=posXBck2+cam.viewportWidth/2){ posXBck1=posXBck2; } } 哪里: ANCHODEFONDO是我背景的宽度 Cam是OtrhoCam。 所以我说如果凸轮在bck2中(这意味着你不能再看到bck1)它会改变位置,给出bck2 de bck2的位置,并在下一个渲染循环中重新计算bck2 然后在渲染模式下绘制两个bck。

如何在LibGDX项目中显示非页内广告?

我发现了一个Flappy Bird GitHub项目并稍微改了一下。 我成功实施了AdMob Banner。 但现在我还想要一个在游戏结束时弹出的插页式广告(当然不是每次都会弹出)所以这是我的GitHub项目: https : //github.com/DaFaack/FlappyBibi 请解释我怎么做,因为我在互联网上找不到一个好的解释。 我想在run()方法中显示广告。 您可以在核心包中找到它 – > GameplayScreen.java文件 – > renderPlaying()方法,然后是run()方法。 这是我说的方法: private void renderPlaying() { if (justTouched) { bird.jump(); justTouched = false; } updatePipePairs(); gameplayStage.act(); uiStage.act(); checkCollisions(); if (bird.getState() == Bird.State.DYING) { stopTheWorld(); RunnableAction playWooshAction = Actions.run(new Runnable() { @Override public void run() { com.pentagames.flappybibi.Assets.playWooshSound(); //Here I […]

从libgdx中的集合中检测触摸对象(移动)的最佳方法

这是我第一次尝试游戏开发。 我刚开始尝试libgdx并理解游戏编程的不同方面。 我查看了示例项目,我可以理解libgdx游戏的整体架构。 但是为了掌握游戏动态的基础知识,我开始玩低级别的东西,比如如何绘制简单的形状,如何移动它们,如何处理碰撞。 所以我打算写一个死的简单的安卓游戏(它甚至不是游戏肯定)。 这是个主意 1. Create random shapes and make it fly (move) 2. When user touches the shape, it ll explode or hide or play simple animation 3. Has to show Hit & Miss count 最初我想过尝试libgdx阶段和演员概念,但排除了没有场景API。 我开始尝试基本游戏的不同方面,并更好地理解libgdx背后的概念。 所以我制作了这个简单的应用程序,我能够使对象随机掉落。 public class A1GameScreen implements Screen { OrthographicCamera camera; ShapeRenderer debugRenderer = new ShapeRenderer(); Array […]

如何使libGDX Desktop应用程序可resize?

libGDX应用程序必须实现.resize(int width,int height)方法,所以我认为调整libGDX应用程序的大小并不是什么大问题,但是我发现没有办法让实际的应用程序JFrame或者像JFrame一样可以拖动。的setResizable(真)。 用libGDX这是不可能的吗?