头歌软件设计植物大战僵尸第四关
根据题目要求,我需要补充三个文件中的代码:StageSystem.java、EnemyKilledObserver.java 和 CharacterSystem.java。下面是补充的代码:
1. StageSystem.java
public void InitStageChain()
{
int lv = 1;
// 创建handler1,生产6个ZombieNormal,生产速度1f,若3个被消灭则将责任转移给下一个对象
NormalStageHandler handler1 = new NormalStageHandler(this, lv++, 3, "ZombieNormal", 6, 1f);
// 创建handler2,生产12个ZombieNormal,生产速度1f,若6个被消灭则将责任转移给下一个对象
NormalStageHandler handler2 = new NormalStageHandler(this, lv++, 6, "ZombieNormal", 12, 1f);
// 创建handler3,生产100个ZombieNormal,生产速度2f,若109个被消灭则结束
NormalStageHandler handler3 = new NormalStageHandler(this, lv++, 109, "ZombieNormal", 100, 2f);
// 设定好链条handler1-handler2-handler3
handler1.SetNextHandler(handler2);
handler2.SetNextHandler(handler3);
// 设定当前关卡为handler1
mRootHandler = handler1;
}
2. EnemyKilledObserver.java
@Override
public void Update(GameEventType eventType)
{
// 当收到消息时,如何处理
if (eventType == GameEventType.EnemyKilled) {
mmStageSystem.setmCountOfEnemyKilled();
}
}
3. CharacterSystem.java
// 死亡数据有变化,发通知告诉观察者
events.notify(GameEventType.EnemyKilled);
public void CreatEventSystem(StageSystem stageSystem)
{
// 实例化EventManager的EnemyKilled主题
events = new EventManager(GameEventType.EnemyKilled);
// 实例化EnemyKilledObserver
EnemyKilledObserver observer = new EnemyKilledObserver();
// 将实例化的EnemyKilledObserver绑定到events
observer.setStageSystem(stageSystem);
events.subscribe(GameEventType.EnemyKilled, observer);
}
浙公网安备 33010602011771号