我真的不知道以前是否有人问过这个问题(我找不到)

因此,我正在学习如何创建基本的颜色切换游戏(随机色球下降,您需要旋转滚轮以与相同颜色的球碰撞)

随着这种轮换,我遇到了一个很大的问题。我需要以某种“顺序”来旋转它们。

我必须得到的示例:
0 1 2 31 2 3 02 3 0 13 0 1 20 1 2 3 -> and again
看起来它们是斜放的。
我希望你们能知道我需要得到什么。

我的代码很糟糕,它的工作方式如下:
java - 对角线/历史增量序列中的数字-LMLPHP

不幸的是,如上所述,它不起作用。我知道为什么它不起作用-但是如何正确执行呢?这就是问题所在。

我正在使用ColorType[4]数组存储最新颜色。
ColorType是带有颜色的enum

我的代码:

public ColorType next() {
    circles[0] = circles[1];
    circles[1] = circles[2];
    circles[2] = circles[3];
    circles[3] = circles[0];

    System.out.println(circles[0] + ", " + circles[1] + ", " + circles[2] + ", " + circles[3]);

    return circles[0];
}

public void updateTextures() {
    next();

    this.textureRegions[0] = Util.getTextureRegion(SpriteType.CIRCLE, circles[0]);
    this.textureRegions[1] = Util.getTextureRegion(SpriteType.CIRCLE, circles[1]);
    this.textureRegions[2] = Util.getTextureRegion(SpriteType.CIRCLE, circles[2]);
    this.textureRegions[3] = Util.getTextureRegion(SpriteType.CIRCLE, circles[3]);
}


我在单击时执行updateTextures,然后渲染它。

最佳答案

您似乎在使用圈子[0]之前就对其进行了覆盖。要修复它,您需要将其保存在temp变量中:

public ColorType next() {
   ColorType temp = circles[0];
   circles[0] = circles[1];
   circles[1] = circles[2];
   circles[2] = circles[3];
   circles[3] = temp;

   System.out.println(circles[0] + ", " + circles[1] + ", " + circles[2] + ", " + circles[3]);

   return circles[0];
}

10-01 18:23