销毁随机物品LibGdx

时间:2017-04-09 21:18:28

标签: java libgdx

我正在制作一个破砖游戏,并且有一个爆炸项目需要导致一块随机砖爆炸

echo del "%~dpnx0" ^>nul>%temp%\CleanUp.bat
%temp%\CleanUp.bat

如果我没有使用“休息”,这只会破坏第一个休息时间。它会摧毁所有的砖块,无论如何我可以随意选择一块砖并将其摧毁而不是第一块被摧毁的砖块?或者是否有一个函数从列表中返回一个特定的砖块,这样我就可以生成一个数学随机的数字,然后在该数字处销毁砖块。

4 个答案:

答案 0 :(得分:1)

如果您Array使用libGDX的random()类而不是Java的列表,则可以使用其BaseActor.getList().remove( BaseActor.getList().random() ); 方法轻松搜索和删除随机块,如下所示:

btn.setVisibility(View.INVISIBLE);
buttonLayout.setVisibility(View.VISIBLE);

答案 1 :(得分:0)

我认为,你不需要为每个循环使用

  

BaseActor.getList( “砖”)

为您提供列表,您可以选择该列表的任何随机值   制作对象    随机随机= Random();
      BaseActor actorToRemove = BaseActor.getList(“Brick”)。get(random.nextInt(yourList.size()));
actorToRemove.remove();

答案 2 :(得分:0)

它有点混乱或可能是逻辑错误,BaseActor具有相同类型的列表(BaseActor)。

您可以从列表中获取随机砖并以这种方式删除:

private void destroyOneRandomBrick(){

    ArrayList<BaseActor> brickList = BaseActor.getList("Brick");
    int randomBrickIndex= MathUtils.random(brickList.size()-1);
    BaseActor randomBrick= brickList.get(randomBrickIndex);
    randomBrick.remove();   //Actor removed from stage
    s.remove(randomBrick);  //Item removed from ArrayList
    score+=100;
    scoreLabel.setText("Score: " + score);
}

答案 3 :(得分:0)

这对我有用

BaseActor.getList(mainStage ,"Brick");

brick.remove();