我正在开发 libgdx 中的游戏,我的部分场景是这样的
1:我有 5 个方格,每 10 秒填充一次,一旦它们全部填满[50 秒],则什么也做不了。我通过将它们从默认的红色着色为蓝色来填充它们。
2:一个按钮,它有它的操作,其中一个操作是它将填充其中一个正方形(颜色从红色变为蓝色。)
这是设置
act(float)-------调用---> updateSquare
updateSquare ---> 检查自上次以来是否已经 10 秒,如果是,则抓住第一个可用的正方形并更改颜色。
buttonListener ----> 将可用的第一个方块的颜色从红色变为蓝色。
现在我的问题是它是否是线程安全的?这些线程会相互重叠吗?
假设我的前两个方块是红色的,其余的是蓝色的,所以第一个可用的是第三个,所以如果第一个updateSquare被调用,然后我点击按钮,那么两个新方块将变成蓝色,总共四个蓝色方块。
但是,如果两者同时发生(updateSquare 和 buttonClick),那么它们都只会使第三个正方形变为蓝色。
这种情况(重叠)可能吗?我的朋友不是,我也没有遇到这样的问题,但我不知道它是否是线程安全的?