我正在为我的学校编程项目开发射击游戏,并与演员一起使用碰撞检测。
后来我意识到我需要使用另一个可以返回区域中所有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();
答案 0 :(得分:2)
如果要遍历演员列表,可以执行以下操作:
for (Actor actor : listActors) {
// here you should put your logic.
...
}