有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在我站在上面的时候删除“item”

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

How spawned swords look

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

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());
        }

当我站在上面时:

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

render()中,它们显示在屏幕上:

for (Sword sword : swords) {
    sword.createMe();
}

这是我的剑课:

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() {

    }
}

忽略createMe()中的整个(if pickMe())当我在剑上时,如何删除这把特定的剑


共 (1) 个答案

  1. # 1 楼答案

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

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