Libgdx数组<>如何获得最后一项?

时间:2017-05-09 18:31:21

标签: java android libgdx box2d

我希望更改" bucket"的Y位置,当摄像机Y位置高于"最后创建的桶" Y位置:我的代码在" create()"方法

buckets = new Array<Bucket>();
for(int i=1;i<BUCKET_COUNT;i++){
    buckets.add(new Bucket(world,(rand.nextInt((int)W)-45)/PPM,BUCKET_MARGIN*i/PPM));
}

我在&#34; render()&#34;方法:

for(Bucket bucket : buckets){
    if(cam.position.y > buckets.peek().getBody().getPosition().y){
        bucket.repos(rand.nextInt((int)W)/PPM,buckets.size+BUCKET_MARGIN/PPM);
    }
}

回购():

public void repos(float x, float y){
    setPosition(x, y);//Bucket class is extends Sprite
}

但它没有用,我也不知道如何解决这个问题

我想知道如何从这些数组中获取最后项目?

1 个答案:

答案 0 :(得分:0)

你应该试试这个,

if(cam.position.y > buckets.peek().getPosition().y){
     for(Bucket bucket : buckets){
        bucket.repos(rand.nextInt((int)W)/PPM,buckets.size+BUCKET_MARGIN/PPM);
    }
}

在这个桶的位置没有正确指定,因为根据你的代码,所有桶都设置为特定的y位置。

编辑

if(cam.position.y > buckets.peek().getPosition().y){
    for(Bucket bucket : buckets){
            bucket.repos(rand.nextInt((int)W)/PPM,cam.position.y+bucket.getPositon().y);
    }
}

编辑2

看看这个tutorial,我认为它对你有帮助。