gpt4 book ai didi

java - 仅从 Actor Libgdx 底部拖放触发器

转载 作者:太空宇宙 更新时间:2023-11-04 11:36:59 26 4
gpt4 key购买 nike

我有一个表,其中每个单元格中都包含另一个表。例如,该表可以有 8 个其他表。我添加了拖放功能,这样我就可以拖动较小的表格。它有效,但只是部分有效。仅当我触摸较小表格的底部时才会检测到拖放,如果我触摸它们的中间或顶部则不会触发拖放。我尝试设置较小表格的宽度和高度,然后拖放也从顶部的一个点触发,但仍然不是从它应该的任何地方触发?可能出了什么问题?

我的代码:在代码中,collectionTable 是较大的表,TestCard 是添加到 collectionTable 的较小表的类型。

dnd = new DragAndDrop();
dnd.setDragTime(50);
for (final Actor x : collectionTable.getChildren()) {
TestCard y = (TestCard) x;
y.setWidth(Gdx.graphics.getWidth() / (7 * scale));
y.setHeight(Gdx.graphics.getHeight() / (3.3f * scale));
dnd.addSource(new CardSource(y));
dnd.addTarget(new Target(selectedDeck);
//not adding the code from the target as it works as intended

class CardSource extends Source {

final Payload payload = new Payload();

TestCard card;

public CardSource(Actor actor) {
super(actor);
}

public CardSource(TestCard card) {
super(card);
this.card = card;
card.setWidth(Gdx.graphics.getWidth() / (7 * scale));
card.setHeight(Gdx.graphics.getHeight() / (3.3f * scale));
}

public Payload dragStart(InputEvent event, float x, float y, int pointer) {
payload.setObject(card.);
payload.setDragActor(new TestCard(card));
//payload.setInvalidDragActor(invalidActor);
payload.setValidDragActor(new TestCard(card));
return payload;
}
}

最佳答案

使用:setTouchabe(Touchable.enabled)

在父表上。默认情况下,“组”(WidgetGroup 或 Table)仅注册对实际可见参与者(如按钮和标签)的触摸。

关于java - 仅从 Actor Libgdx 底部拖放触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43180438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com