java - 对角/历史递增序列中的数字

标签 java libgdx

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

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

通过这种轮换,我遇到了一个非常大的问题。我需要以某种“顺序”旋转它们。

我必须得到的示例: 0 1 2 3 1 2 3 0 2 3 0 1 3 0 1 2 0 1 2 3 -> 再次 看起来它们是对角放置的。 我希望你们能知道我需要什么。

我的代码很糟糕,它的工作原理如下: enter image description here

不幸的是,它不能像我上面提到的那样工作。我知道为什么它不起作用 - 但如何正确地做到这一点?这就是问题所在。

我使用 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/

相关文章:

java - 用于 3D 游戏的 Libgdx 渲染层

java - 迭代映射并将其值放入 java 中

java - 为什么一个接口(interface)不能实现另一个接口(interface)?

android - Android 上 libgdx 游戏的全屏分辨率

java - 在 LibGDX 中将形状绘制为纹理

java - 如何使这个 libGDX 阶段/按钮接收触摸?

java - 为什么java中的main()是void?

java - 从 Java 检查/获取 JAVA_HOME 变量

java - 从 javabean 创建不可变对象(immutable对象)

java - 使用多个夹具时 Box2D 程序崩溃