2017-01-15 3 views
0

Я не знаю, если этот вопрос был задан вопрос где-то раньше (я не могу найти)Числа в диагонали/историческая последовательность инкрементации

Итак, я учусь, как создать основную игру цвета переключателя (случайный цветной шарик идет вниз, и вам нужно вращать колесо, чтобы столкнуться с мячом с тем же цветом)

И с этим вращением у меня действительно большая проблема. Мне нужно повернуть их в несколько «последовательности».

Пример того, что я должен получить: 0 1 2 3 1 2 3 0 2 3 0 1 3 0 1 2 0 1 2 3 -> and again Похоже, что они установлены по диагонали. Надеюсь, вы, ребята, знаете, что мне нужно.

Мой код очень плохо, это работает так: enter image description here

Unfortunatelly это не работает, как я уже говорил выше. Я знаю, почему это не работает, но как это сделать правильно? Вот в чем вопрос.

Я использую массив 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 на клик, а затем сделать его.

ответ

1

Похоже, что вы переопределяете круги [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]; 
} 
+0

Спасибо! Я так глуп, иногда xD – SocketByte