2014-10-26 22 views
-1

我有這個ArrayList,我用來生成2類型的劍有1到5級。當我「拾起它」時,我希望它永遠消失。我如何處置那把劍?刪除「項目」時,它拾起/當我站在它

How spawned swords look

此代碼分配和生成劍(S)渲染器類:

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())如何刪除這個特定的劍時,我就可以了?

+0

另外[A​​rrayList的在Java中實施例 - 如何使用ArrayList](http://examples.javacodegeeks.com/core-java/util/arraylist/arraylist-in-java-example-how-to- use-arraylist /)解釋ArrayList的使用情況 – dawez 2014-10-26 22:46:14

回答

0

如果你想在拾取它之後永久刪除劍,你必須從劍的ArrayList中移除它。

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

它崩潰,不知道爲什麼 – 2014-10-27 13:59:47

+0

它告訴你什麼?如果您在列表中沒有任何內容,則無法刪除。這個問題也可以是別的。我建議閱讀ArrayList教程,發送給你的問題發表評論。 – Kimimaru 2014-10-28 02:12:18

相關問題