我真的不知道这个问题以前是否有人问过(我真的找不到)
所以,我正在学习如何创建基本的颜色切换游戏(随机颜色球下降,你需要旋转轮子与相同颜色的球碰撞)
通过这种轮换,我遇到了一个非常大的问题。我需要以某种“顺序”旋转它们。
我必须得到的示例:
0 1 2 3
1 2 3 0
2 3 0 1
3 0 1 2
0 1 2 3 -> 再次
看起来它们是对角放置的。
我希望你们能知道我需要什么。
不幸的是,它不能像我上面提到的那样工作。我知道为什么它不起作用 - 但如何正确地做到这一点?这就是问题所在。
我使用 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]。要修复它,您需要将其保存在临时变量中:
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];
}
关于java - 对角/历史递增序列中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41665742/