(点击图片进入关卡)
夜幕降临了。带士兵们围在火旁!
简介
setActionFor 函数可以用来一次控制多个单元。
让所有的 "soldier" s 在出生时移动到关卡的中心位置!
默认代码
# 夜晚来临! 把所有的士兵向火移动。
def centerFormation(event):
# event.target是运行此事件处理程序的单元。
unit = event.target
# 现在使用unit.moveXY将装置移动到火中。
# 这产生了四名士兵:
game.spawnXY("soldier", 16, 57)
game.spawnXY("soldier", 15, 13)
game.spawnXY("soldier", 63, 13)
game.spawnXY("soldier", 67, 57)
# 这将士兵的重生行动设置为功能中心队形:
game.setActionFor("soldier", "spawn", centerFormation)
概览
setActionFor 函数用于定义某种类型的单元逻辑。 用它来告诉所有士兵移动到地图中心,或者食人魔攻击他们最近的敌人,或者弓箭手只攻击大家伙!
当行为函数被调用时,它会创建一个被调用的特定单元的事件。 event.target 是你如何能够指挥特定单位如何执行的事情。
def sayHi(event):
# This is the specific unit:
unit = event.target
# This makes that unit say something.
unit.say("Hi!")
game.spawnXY("munchkin", 20, 20)
game.spawnXY("munchkin", 30, 40)
# All munchkins now have an event listener on 'spawn' which calls sayHi when they spawn:
game.setActionFor("munchkin", "spawn", sayHi)
中心队形 解法
# 夜晚来临! 把所有的士兵向火移动。
def centerFormation(event):
# event.target是运行此事件处理程序的单元。
unit = event.target
# 现在使用unit.moveXY将装置移动到火中。
unit.moveXY(40, 36)
# 这产生了四名士兵:
game.spawnXY("soldier", 16, 57)
game.spawnXY("soldier", 15, 13)
game.spawnXY("soldier", 63, 13)
game.spawnXY("soldier", 67, 57)
# 这将士兵的重生行动设置为功能中心队形:
game.setActionFor("soldier", "spawn", centerFormation)