Android Invaders游戏开发详解
1. 射击方法实现
射击方法 shoot() 是游戏中实现射击逻辑的关键部分。代码如下:
public void shoot() {
if (ship.state == Ship.SHIP_EXPLODING)
return;
int friendlyShots = 0;
int len = shots.size();
for (int i = 0; i < len; i++) {
if (shots.get(i).velocity.z < 0)
friendlyShots++;
}
if (System.nanoTime() - lastShotTime > 1000000000 || friendlyShots == 0) {
shots.add(new Shot(ship.position.x, ship.position.y,
ship.position.z, -Shot.SHOT_VELOCITY));
lastShotTime = System.nanoTime();
listener.shot();
}
}
该方法的逻辑如下:
- 首先检查飞船是否处于爆炸状态,如果是则直接返回,不进行射击。
- 遍历所有的子弹实例,统计友方子弹的数量。
- 如果距离上一次射击超过1秒,或者当前没有
超级会员免费看
订阅专栏 解锁全文
32

被折叠的 条评论
为什么被折叠?



