编辑:很抱歉,我需要扩展。我使用的是 LibGDx,所以我的代码实际上更复杂。
Rock1 = new TextureRegion(texture, 5, 10);
Rock2 = new TextureRegion(texture, 6, 11);
Rock3 = new TextureRegion(texture, 7, 12);
int rannum = ran.nextInt (3)+1;
我希望出现的岩石是随机的。
我有一个名为“rannum”的随机整数,它设置在 1 和 3 的界限之间。所以我想弄清楚如何获得一种方法来实现它,以便我可以组合“Rock”和“rannum”这样它就可以随机返回 Rock1、Rock2 或 Rock3。
我指的不是连接两个字符串,而是具体的对象名称。
我该怎么做?是否需要使用数组?
您可以像这样使用数组或列表:
TypeRock[] rocks = new TyprRock[]{Rock1, Rock2, Rock3};
或:
List<TypeRock> rocks = Arrays.asList(Rock1, Rock2, Rock3);
...然后你可以像这样使用 Random
:
Random ran = new Random();
TypeRock selectedRock = rocks[ran.nextInt(rocks.length)];
或:
TypeRock selectedRock = rocks[ran.nextInt(rocks.size())];
或者喜欢@davidxxx在评论中提到,你可以像这样使用 Collections.shuffle(list) 而不使用 Random
:
List<TypeRock> rocks = Arrays.asList(Rock1, Rock2, Rock3);
Collections.shuffle(rocks);
然后您可以使用第一个值,例如 rocks.get(0)