• 「网易官方」极客战记(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)
     
     
    本攻略发于极客战记官方教学栏目,原文地址为:
  • 相关阅读:
    rocketmq手工创建topic出错
    rocketmq
    redis基本操作命令key命令+string命令+事务操作命令
    Redis启动常用管理命令
    --环比去年,row_number() over()取最新版本
    二分查找
    使用Python实现的4种快速排序算法
    卷积神经网络的理解
    两个很赞的用法(count函数里的表达式+计算时间间隔)
    MySQL中exists和in的区别及使用场景
  • 原文地址:https://www.cnblogs.com/codecombat/p/12718407.html
Copyright © 2020-2023  润新知