1

私は学校のプログラミングプロジェクトでシューティングゲームに取り組んでおり、俳優との衝突検出を使用しています。

後で、エリア内のすべてのアクターを返すことができる別のメソッドを使用する必要があることに気付きましたが、唯一の問題はリストを返すことです。リストの使い方がわからないので、リストの各要素をアクターに変える必要があります

コードのセクションは次のとおりです。

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

1 に答える 1

2

アクターのリストを反復処理する場合は、次のようにします。

for (Actor actor : listActors) {
    // here you should put your logic.
    ...
}
于 2012-06-09T20:04:59.413 に答える