有人忘了保卫要塞! 添加一名士兵并对他们进行编程以捍卫要塞!
简介
使用事件处理函数给士兵指令!
def soldierLogic():
while True:
enemy = soldier.findNearestEnemy()
if enemy:
soldier.attack(enemy)
soldier = hero.spawnXY("soldier", 42, 48)
soldier.on("spawn", soldierLogic)
默认代码
# 添加一名士兵到该关卡,以防止食人魔穿过道路。
# 使用事件处理函数命令士兵。
def soldierLogic():
# 在这里填写士兵行动的代码。
# 记得用‘soldier‘代替‘hero‘!
while True:
enemy = soldier.findNearestEnemy()
# 如果敌人存在,则攻击敌人。
if enemy:
# 单位有attack()方法。
# 你用士兵攻击(敌人)的方法:
pass
# 否则,请回到起始位置。
else:
# 单位有moveXY()方法。
pass
# 这将生成的单位分配给士兵变量。
soldier = game.spawnXY("soldier", 42, 48)
# 这就是说,当士兵生成时,就可以执行士兵逻辑功能。
soldier.on("spawn", soldierLogic)
概览
在游戏开发层面,编程士兵就像编程一个宠物。
您可以使用 on(eventName,eventHandlerFunction) 函数将自定义行为分配给单位。
eventName 参数是一个用于触发 eventHandlerFunction 执行的特定事件的字符串。
"spawn" 只会在一个单位产生时发生一次。
eventHandlerFunction 参数是你定义的一个函数。 你可以把任何代码放在你想要的地方! 毕竟你是游戏开发者。
作为一个例子,考虑这个设置:
def munchkinLogic():
while True:
enemy = munchkin.findNearestEnemy()
if enemy:
munchkin.attack(enemy)
munchkin = game.spawnXY("munchkin", 20, 20);
munchkin.on("spawn", munchkinLogic)
考虑上面的代码的作用!
- 它定义了决定食人魔矮人行为逻辑的函数。
- 该逻辑表示,在看到敌人时攻击最近的敌人。
- 它会创建一个矮人,并将其存储在变量中。
- 最后,设置动作给矮人的生成触发器。
在深入研究下一个问题之前,阅读代码以了解它所做的事情总是有帮助的。
守卫的职责 解法
# 添加一名士兵到该关卡,以防止食人魔穿过道路。
# 使用事件处理函数命令士兵。
def soldierLogic():
# 在这里填写士兵行动的代码。
# 记得用‘soldier‘代替‘hero‘!
while True:
enemy = soldier.findNearestEnemy()
# 如果敌人存在,则攻击敌人。
if enemy:
# 单位有attack()方法。
# 你用士兵攻击(敌人)的方法:
soldier.attack(enemy)
# 否则,请回到起始位置。
else:
# 单位有moveXY()方法。
soldier.moveXY(42, 48)
# 这将生成的单位分配给士兵变量。
soldier = game.spawnXY("soldier", 42, 48)
# 这就是说,当士兵生成时,就可以执行士兵逻辑功能。
soldier.on("spawn", soldierLogic)