2012-06-09 6 views
1

Je travaille sur un jeu de tir pour mon projet de programmation scolaire et en utilisant la détection de collision avec des acteurs. Plus tard, j'ai réalisé que je devais utiliser une autre méthode qui peut renvoyer tous les acteurs dans une zone, mais le seul problème est qu'il retourne une liste. Je ne sais pas comment utiliser une liste et la nécessité de transformer chaque élément de la liste en un acteurTransformer une liste en acteurs (Greenfoot)

Voici la section du code:

MyWorld w = (MyWorld) getWorld(); 
    List<Actor> a = getObjectsInRange(20, null) ; 
    //if it hits the soldier 
    if (a instanceof Soldier) 
    { 
     Soldier s = (Soldier) a; 
     //kill the enemy 
     s.die(); 
     //add 100 score to the enemy 
     w.addScore(100); 
     //if the weapon is not laser 
     if (weaponId != 2) 
     { 
      //getting the world to make the bullet able to fire again 
      w.setBulletLive(false); 
      //remove the bullet 
      getWorld().removeObject(this); 

     } 
    } 
    // if it hits the enemy 
    else if (a instanceof EnemyWeapon) 
    { 
     EnemyWeapon g = (EnemyWeapon) a; 
     //intercept the missile 
     g.intercepted(); 
+0

Qu'est-ce qu'un acteur exactement et comment est-il lié aux autres objets? Vous voulez probablement commencer par (Actor acteur: acteurs) {core here} – stevedbrown

Répondre

2

Si vous voulez parcourir la liste des acteurs vous pouvez effectuer les opérations suivantes:

for (Actor actor : listActors) { 
    // here you should put your logic. 
    ... 
} 
Questions connexes