LEVEL 6
冒险时刻 (Adventure Time)
时间控制台
指挥官,我们需要源源不断的敌人来训练士兵!如果只写一次 spawnXY,敌人打完就没了。如果写一万行 spawnXY,手指会断掉的!
我们需要一台“自动刷怪机”!
核心逻辑:设定闹钟
想象你有一个闹钟,我们叫它 spawnTime(生成时间)。
游戏里还有一个一直走的挂钟,叫 game.time。
- 第一步:闹钟设在 0秒。
- 第二步:一直看表(while True)。如果
挂钟时间 > 闹钟时间... - 第三步:叮铃铃!生成一个怪兽!
- 第四步(最重要):把闹钟拨到 2秒 以后!
12
6
game.time += 1s
Next: +2s
loop_spawner.py
1
# game.time是游戏经过的时间
2
game.spawnPlayerXY("guardian", 10, 35)
生成玩家英雄
3
game.addSurviveGoal()
目标:存活
4
game.addDefeatGoal(5)
目标:击败5个敌人
5
6
def onSpawn(event):
定义怪物的AI逻辑
7
while True:
怪物出生后进入无限循环
8
unit = event.target
获取当前的怪物单位
9
enemy = unit.findNearestEnemy()
寻找玩家
10
if enemy:
如果找到玩家
11
unit.attack(enemy)
发起攻击
12
13
game.setActionFor("munchkin", "spawn", onSpawn)
所有munchkin出生即执行攻击逻辑
14
15
# game.time从0开始,并以秒为单位自动更新
16
spawnTime = 0
初始化闹钟:现在(0秒)就响
17
while True:
游戏主循环(时刻监控时间)
18
# spawnTime是生成单位的时间。
19
if game.time > spawnTime:
判断:挂钟时间是否超过了闹钟时间?
20
# 在60, 35处生成一个"munchkin"
21
game.spawnXY("munchkin", 60, 35)
到时间了!生成敌人!
22
# 使用spawnTime = game.time + 2 设置 敌人每2秒生成一次
23
# #
24
spawnTime = game.time + 2
重设闹钟:定在当前时间的2秒后
教官提示:
game.time 是不可修改的,它自己会走。但 spawnTime 是我们自己定义的变量,我们可以随意修改它来决定下一次生成是什么时候。