将列表转换为演员(Greenfoot)

时间:2012-06-09 19:41:20

标签: java list collision

我正在为我的学校编程项目开发射击游戏,并与演员一起使用碰撞检测。

后来我意识到我需要使用另一个可以返回区域中所有actor的方法,但唯一的问题是它返回一个列表。我不知道如何使用列表,需要将列表中的每个元素转换为actor

以下是代码部分:

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

1 个答案:

答案 0 :(得分:2)

如果要遍历演员列表,可以执行以下操作:

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