「网易官方」极客战记(codecombat)攻略-游戏开发2-守卫的职责-guard-duty

「网易官方」极客战记(codecombat)攻略-游戏开发2-守卫的职责-guard-duty

 

 

有人忘了保卫要塞! 添加一名士兵并对他们进行编程以捍卫要塞!

简介

使用事件处理函数给士兵指令!

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)

考虑上面的代码的作用!

  1. 它定义了决定食人魔矮人行为逻辑的函数。
  2. 该逻辑表示,在看到敌人时攻击最近的敌人。
  3. 它会创建一个矮人,并将其存储在变量中。
  4. 最后,设置动作给矮人的生成触发器。

在深入研究下一个问题之前,阅读代码以了解它所做的事情总是有帮助的。

守卫的职责 解法

# 添加一名士兵到该关卡,以防止食人魔穿过道路。 # 使用事件处理函数命令士兵。 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)     本攻略发于极客战记官方教学栏目,原文地址为: https://codecombat.163.com/news/jikezhanji-shouweidezhize 极客战记——学编程,用玩的!
上一篇:# Codeforces Round #722(div2)D. Kavi on Pairing Duty


下一篇:模拟20 题解