指挥你的军队战斗!
简介
如果你有很多单位,可以使用 game.setActionFor(unitType,eventType,eventHandlerFunction) 来为它们都设置好动作!
game.spawnXY("soldier", 30, 20)
game.spawnXY("soldier", 35, 20)
game.spawnXY("soldier", 40, 20)
game.spawnXY("soldier", 45, 20)
def lol(event):
while True:
unit = event.target
unit.say("lol")
game.setActionFor("soldier", "spawn", lol)
默认代码
# 使用事件处理程序来命令单位以击败来击败食人魔。
# 产生2名 "soldier"s。
game.spawnXY("soldier", 35, 20)
game.spawnXY("soldier", 45, 20)
# 产生2名"archer"s。
def fightEnemies(event):
while True:
# event.target是执行这个事件处理函数的单元!
friendUnit = event.target
enemy = friendUnit.findNearestEnemy()
# 然后会有队友攻击敌人!
# 这将把fightEnemies处理程序添加到所有士兵的“spawn”事件中。
game.setActionFor("soldier", "spawn", fightEnemies)
# 现在,将敌人添加到弓箭手的“spawn”事件上:
概览
注意,事件处理函数可以定义一个参数。
此参数包含 “event” 数据。
你可以使用 event.target 来访问正在运行的单位(例如你的士兵)
def soldierLogic(event):
soldier = event.target
enemy = soldier.findNearestEnemy()
陆军训练 2 解法
# 使用事件处理程序来命令单位以击败来击败食人魔。
# 产生2名 "soldier"s。
game.spawnXY("soldier", 35, 20)
game.spawnXY("soldier", 45, 20)
# 产生2名"archer"s。
def fightEnemies(event):
while True:
# event.target是执行这个事件处理函数的单元!
friendUnit = event.target
enemy = friendUnit.findNearestEnemy()
# 然后会有队友攻击敌人!
friendUnit.attack(enemy)
# 这将把fightEnemies处理程序添加到所有士兵的“spawn”事件中。
game.setActionFor("soldier", "spawn", fightEnemies)
# 现在,将敌人添加到弓箭手的“spawn”事件上:
game.setActionFor("archer", "spawn", fightEnemies)