Java 删去“;项目「;当我站在上面时,它被拾起了

Java 删去“;项目「;当我站在上面时,它被拾起了,java,libgdx,Java,Libgdx,我有一个ArrayList,我用它来生成2种类型的剑,等级从1级到5级。当我“捡起它”时,我希望它永远消失。我该如何处置那把剑 此代码分配并生成剑渲染器类: private List<Sword> swords = new ArrayList<Sword>(); Then in public Renderer() method I do: for (int i = 0; i<10 ; i++ ) { swords.add(new Swor

我有一个ArrayList,我用它来生成2种类型的剑,等级从1级到5级。当我“捡起它”时,我希望它永远消失。我该如何处置那把剑

此代码分配并生成剑渲染器类:

private List<Sword> swords = new ArrayList<Sword>();
Then in public Renderer() method I do:

for (int i = 0; i<10 ; i++ ) {
            swords.add(new Sword());
        }
这是我的剑课:

public class Sword {
    private TextureRegion sprite;
    public Vector2 position;
    private int x, y;
    private int size;
    private Random r;
    private boolean pickme = false;
    public int myLevel;
    public Sword() {
        position = new Vector2(x, y);
        r = new Random();
        position.x = (r.nextInt(15))*GameRender.tilesize;
        position.y = (r.nextInt(15))*GameRender.tilesize;
        size = GameRender.tilesize;
        myLevel = r.nextInt(4);
        sprite =getSprite();
        System.out.println(myLevel);
    }
    private TextureRegion getSprite() {
        if(myLevel<3){
            sprite=AssetLoader.s1;
        }else sprite=AssetLoader.s2;
        return sprite;
    } 
    public void pickMe(){
        //GameRender.batch.draw(sprite, 10, 10, size, size);  
        pickme = true;
    }
    public void createMeShape(){
        //GameRender.shapeRenderer.rect(position.x, position.y, size, size);
    }
    public void createMe() { 
        //draws it
        GameRender.batch.draw(sprite, position.x, position.y, size, size);  
        if(pickme){
            //draws that im standing on it
            GameRender.batch.draw(sprite, GameRender.playerx, GameRender.playery-10, size, size);  
        }
        pickme=false;
    }
    public static void Update() {

    }
}
公共类剑{
私人织物区雪碧;
公共向量2位置;
私有整数x,y;
私有整数大小;
私有随机r;
私有布尔值pickme=false;
公共国际水平;
公共剑(){
位置=新矢量2(x,y);
r=新随机数();
position.x=(r.nextInt(15))*GameRender.tilesize;
position.y=(r.nextInt(15))*GameRender.tilesize;
大小=GameRender.tilesize;
myLevel=r.nextInt(4);
sprite=getSprite();
System.out.println(myLevel);
}
私有纹理区域getSprite(){

如果(myLevel如果你想在拿起宝剑后永远删除它,你必须将它从宝剑列表中删除

if (sword.myLevel<3){
    sword.pickMe();
    swords.remove(sword);
}

if(swarm.mylevel)除了解释ArrayList崩溃的用法外,不知道它告诉了你什么?如果列表中某一点没有任何内容,就没有什么可以删除的。问题也可能是其他问题。我建议你阅读ArrayList教程,我会把它作为对你问题的评论发布给你。
public class Sword {
    private TextureRegion sprite;
    public Vector2 position;
    private int x, y;
    private int size;
    private Random r;
    private boolean pickme = false;
    public int myLevel;
    public Sword() {
        position = new Vector2(x, y);
        r = new Random();
        position.x = (r.nextInt(15))*GameRender.tilesize;
        position.y = (r.nextInt(15))*GameRender.tilesize;
        size = GameRender.tilesize;
        myLevel = r.nextInt(4);
        sprite =getSprite();
        System.out.println(myLevel);
    }
    private TextureRegion getSprite() {
        if(myLevel<3){
            sprite=AssetLoader.s1;
        }else sprite=AssetLoader.s2;
        return sprite;
    } 
    public void pickMe(){
        //GameRender.batch.draw(sprite, 10, 10, size, size);  
        pickme = true;
    }
    public void createMeShape(){
        //GameRender.shapeRenderer.rect(position.x, position.y, size, size);
    }
    public void createMe() { 
        //draws it
        GameRender.batch.draw(sprite, position.x, position.y, size, size);  
        if(pickme){
            //draws that im standing on it
            GameRender.batch.draw(sprite, GameRender.playerx, GameRender.playery-10, size, size);  
        }
        pickme=false;
    }
    public static void Update() {

    }
}
if (sword.myLevel<3){
    sword.pickMe();
    swords.remove(sword);
}