在LibGDX中生成随机数

4

我不知道为什么,但似乎无法理解LibGDX中随机数生成的工作原理,也找不到可用的好例子。只是想知道如何随机生成1-3之间的数字,然后System.out它。额外加分 - 如何每秒钟生成一个新的随机数?


实用类com.badlogic.gdx.utils.Timer包含一个#schedule方法,用于计划在渲染周期之外重复执行的操作。 - Thomas Escolan
2个回答

16

你可以使用标准的Java来实现。

Random random = new Random();
int oneTwoThree = random.nextInt(3) + 1;
这将生成一个随机的整数(0、1或2),然后加上1,结果为1、2或3。
如果您想每秒钟切换一次,则需要在您的render(float)方法中跟踪时间。
private float countDown;

private int randomNumber;

public void render(float deltaTime) {
    countDown -= deltaTime;
    if (countDown <= 0) {
        Random random = new Random();
        randomNumber= random.nextInt(3) + 1;
        countDown += 1000; // add one second
    }
}

2
它应该放在你的渲染方法中,就像这段代码片段中一样。你应该阅读这个:https://github.com/libgdx/libgdx/wiki/The-life-cycle - noone
如果我把它放在render()里面,似乎什么也没有发生。 render()和render(float deltaTime)不是同一个东西,对吗? - CodingNub
3
避免创建垃圾,使用MathUtils.random(...);。参见http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/math/MathUtils.html。 - Xoppa
是的,我看过那些,但我完全不知道如何让它们实际起作用,你能否给我一个快速示例,告诉我如何使用其中之一? - CodingNub
谢谢。感觉我跟随的教程真的匆忙地通过了很多重要的事情。 - CodingNub
显示剩余4条评论

2
import com.badlogic.gdx.math.MathUtils;


int random = MathUtils.random.nextInt(4);

        if(random == 0){

        }else if (random == 1){

        }else if (random == 2){

        }else{

        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接