Articles of scene2d

滚动的Libgdx inputlistener不起作用

我目前正在使用libgdx。 下面的代码被添加到一个阶段。 this.addListener(new InputListener() { public boolean touchDown (InputEvent event, float x, float y, int pointer, int button) { System.out.println("down"); return true; } public void touchUp (InputEvent event, float x, float y, int pointer, int button) { System.out.println("up"); } public void touchDragged(InputEvent event, float x, float y , int pointer) { System.out.println("dragged"); zoom(0.01f); } public […]

在Scene2D中,Actor.hasActions()不再存在吗?

Eclipse不允许我这样做 while(actor.hasActions()){} 说这是未定义types的演员,但libgdx API仍然具有作为一个Actor对象函数之一。

LibGDX阶段渲染的奇怪问题

我正在用LibGDX制作一个Java游戏,而且我刚开始在游戏中添加一个HUD,每当我尝试0,0的“yellowBlock”纹理时,我都会用白色方块来覆盖屏幕的四分之一和“yellowBlock”纹理从未画出。 不管鼠标在哪里 public HudController(World world) { this.world = world; SelectNewTile("yellowBlock"); // HUD SETUP skin = new Skin(Gdx.files.internal("ui/cloud-form-ui.json")); stage = new Stage(new ScreenViewport()); table = new Table(); table.setWidth(stage.getWidth()); table.align(Align.right | Align.top); table.setPosition(0, stage.getHeight()); demolishButton = new TextButton("Demolish Tile", skin); saveButton = new TextButton("Save Game", skin); //table.add(demolishButton); //table.add(saveButton); stage.addActor(demolishButton); InputMultiplexer im = new InputMultiplexer(stage, this); Gdx.input.setInputProcessor(im); } […]

LibGDX – 不完美的屏幕过渡

我试图用LibGDX实现屏幕过渡,使用帧缓冲区对象。 我正在使用的代码如下,如许多教程所示: public abstract class BaseGame extends Game { private float deltaTime, transitionTime; private FrameBuffer currentFb = null, nextFb = null; // BaseScreen is just like Screen with some added methods private BaseScreen nextScreen, currentScreen; private Transition transition; private SpriteBatch batch; protected void init(){ int w = Gdx.graphics.getWidth(); int h = Gdx.graphics.getHeight(); batch = new […]

如何在libGDX中呈现scene2d之后运行方法

我想用一个截图 ScreenUtils.getFrameBufferPixmap(x, y, w, h); 我在scene2d.ui中的Actions.run(new Runnable {…})中调用了这个函数,问题是在一个新的框架开始时调用动作,所以什么也没有渲染。 如何正确调用这个方法,例如 Scene.inTheEnd(run(ScreenUtils.getFrameBufferPixmap(x, y, w, h);)); ?

停止演员点击/点击事件传播

我一直在挣扎几个小时,并已阅读post,文档和libgdx来源,以更好地了解发生了什么事情,但我仍然无法理解这一点。 我想要完成一件非常简单的事情:停止在舞台上传播演员。 设置如下: GameStage定义了一个手势监听器(用于地图平移和在地图上传播水龙头以便Player角色移动) Player有一个可以接收点击的小孩演员 在最后一个孩子的演员,我想检测点击,但没有他们传播给任何其他演员或由阶段处理。 我定义了点击处理程序如下: // in child actor: addListener(new ClickListener() { void clicked(…) }); 这里没有什么奇怪的。 问题在于:因为演员身体位于玩家的父母角色之外,任何点击都会被舞台的地图手势处理器拾取,然后将这些轻敲传播回玩家,从而使其四处移动。 我不要那个; 这个点击监听器应该处理和吞下事件。 然而,我clicked的下面的电话中没有一个实际上取消了这个事件: event.handle() event.stop() event.cancel() 我可以使事件停止传播的唯一方法是使用Stage#cancelTouchFocus 。 然而,这有副作用在舞台上派发一个touchUp事件(为什么?),最终在我的手势监听器,并被解释为一个longPress ! 可能是因为它与错误的touchDown配对… 我错过了什么? 在所有可能的select下,阻止事件传播是不复杂的? 更新:我相信问题在于Stage : https : //github.com/libgdx/libgdx/blob/2bd1557bc293cb8c2348374771aad832befbe26f/gdx/src/com/badlogic/gdx/scenes/scene2d/Stage.java#L348 它遍历所有有触摸焦点的听众,让他们处理事件。 但是,只要侦听器处理完成,它就不会从循环中跳出来,从而进一步传播。 这只是一个错误?

LibGDX:创建自定义actor的问题

我正在创建一个从Actor延伸的自定义类,就像这样: public class MyActor extends Actor { ProgressBar bar; Label nameLabel; TextButton button; public MyActor(String name, Skin skin){ nameLabel = new Label(name, skin); button = new TextButton("Whatever",skin); bar = new ProgressBar(0f,5f,1f,false,skin); } @Override public void act(float delta) { super.act(delta); bar.setBounds(getX(), getTop()-getHeight() / 3f, getWidth(), getHeight() / 3f); nameLabel.setBounds(getX(), getY()+getHeight() / 3f, getWidth(), getHeight() / 3f); […]

Scene2d滚动条即使存在于uiskin.json / atlas中也不会显示

使用uiskin.json, uiskin.png, uiskin.atlas, default.fnt从libgdxtestinguiskin.json, uiskin.png, uiskin.atlas, default.fnt我试图做一个控制台窗口,但滚动条不显示。 uiskin图集包含两个关联片段: default-scroll rotate: false xy: 78, 29 size: 20, 20 split: 2, 2, 2, 2 orig: 20, 20 offset: 0, 0 index: -1 default-round-large rotate: false xy: 57, 29 size: 20, 20 split: 5, 5, 5, 4 orig: 20, 20 offset: 0, 0 index: -1 哪些在uiskin.json中引用 com.badlogic.gdx.scenes.scene2d.ui.ScrollPane$ScrollPaneStyle: { […]

libGDX – Scene2d Actions或Frame Animation,这对性能更好?

我只为我的libGDX游戏的UI层使用Scene2d。 但是我需要一些animation,比如褪色或旋转。 性能更好: Scene2d淡入淡出的动作或具有不同的不透明度的多个帧,并在Animation类中使用它们? 另外scene2d旋转动作或有不同角度的多个帧? 谢谢!

LibGDX在本地文件系统中search文件types

我正在建立一个系统,允许用户上传文件到LibGDX的本地目录在游戏中播放。 如何通过本地文件系统recursionsearch特定文件types并返回所有返回的文件?