「网易官方」极客战记(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://www.cnblogs.com/codecombat/p/12718407.html