gpt4 book ai didi

java - 随机游走者(圆圈)比其他轴更频繁地向上移动

转载 作者:行者123 更新时间:2023-12-02 08:46:43 30 4
gpt4 key购买 nike

所以这是我的一个小项目,只是为了好玩。我尝试使用 libgdx 在 Java 中重新创建随机 Walker。

现在我认为我的代码非常成功,因为它工作正常(也许)。

但是有一个问题,圆比其他轴更倾向于向上移动(yaxis+)。

我花了两天时间才找到解决方案。还是找不到我哪里做错了。

所以这是代码

{
ShapeRenderer sr;
OrthographicCamera cam;
Random r;
int rand;
float x;
float y;

@Override
public void create()
{
sr = new ShapeRenderer();
cam = new OrthographicCamera();
cam.setToOrtho(false, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());

r = new Random();

x = Gdx.graphics.getWidth()/2;
y = Gdx.graphics.getHeight()/2;
}

@Override
public void render()
{
cam.update();

rand = r.nextInt(3);



Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
sr.begin(ShapeRenderer.ShapeType.Filled);
sr.setColor(Color.RED);
sr.circle(x, y, 10);
sr.end();

switch(rand)
{
case 0:
x = x + 100 * Gdx.graphics.getDeltaTime();
break;

case 1:
x = x - 100 * Gdx.graphics.getDeltaTime();
break;
case 2:
y = y + 100 * Gdx.graphics.getDeltaTime();
break;

case 3:
y = y - 100 * Gdx.graphics.getDeltaTime();
break;
default:

}
}```

最佳答案

所以你的问题是 Random.nextInt(n) 方法的上限是排他的

    // Returns number between 0-9 
int next = ran.nextInt(10);

所以你需要使用

    rand = r.nextInt(4);

你正在做的是生成 0->2 之间的 rand,你需要它是 0->3 以包含 y 轴向下

关于java - 随机游走者(圆圈)比其他轴更频繁地向上移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61031984/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com