gpt4 book ai didi

java - libGDX : Paint And Remove Color From Actor with touchDragged

转载 作者:行者123 更新时间:2023-12-02 04:20:05 26 4
gpt4 key购买 nike

我创建了 Button actor 的二维数组,然后添加了 new ClickListener() {
touchDragged }
如下代码:

buttons = new Button[3][3];

for (int row = 0; row < buttons.length; row++) {
for (int col = 0; col < buttons[0].length; col++) {

buttons[row][col] = new Button(drawable);

buttons[row][col].addListener(new ClickListener() {

@Override
public void touchDragged(InputEvent event, float x, float y, int pointer) {
for (int row = 0; row < buttons.length; row++) {
for (int col = 0; col < buttons[0].length; col++) {
if (buttons[row][col].isOver()) {
buttons[row][col].setColor(Color.GREEN);
}
}
}
}
}
}

touchDragged方法中的代码,如果按钮isOver按钮颜色为GREEN(它工作正常),如图enter image description here所示

现在,如何从同一调用 touchDragged 方法中的按钮中删除 Color.GREEN 即 (Color.WHITE),我的意思是如果 isOver() 仍然是 true,则将 GREEN 撤消为 WHITE??

这张图片清楚了我的问题:enter image description here

就像 King 公司的 Alphabetty Game,如果你知道的话:)。

抱歉,英语不好

最佳答案

您可以使用 if 语句来检查方 block 的颜色。如果是白色,则将其涂成绿色,反之亦然。

我有类似的东西,由于某种原因,你不能直接比较 if 语句中的颜色,但是将它们更改为 rgb int 值可以解决这个问题。您可以从各种 RGB 选项中进行选择,例如 rgba8888 或 argb8888 等,选择一个适合您需求的选项。最简单的就是 rgb888。它是 color 类中的静态方法,传递给它一个颜色,它将返回一个 int。

if(Color.rgb888(button[row][col].getColor()) == Color.rgb888(Color.Green()))
{
button[row][col].setColor(Color.White());
}

关于java - libGDX : Paint And Remove Color From Actor with touchDragged,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878595/

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