• 「网易官方」极客战记(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)
     
     
    本攻略发于极客战记官方教学栏目,原文地址为:
  • 相关阅读:
    gulp教程、gulp-less安装
    vue学习总结
    javascript数组去重
    【操作系统】操作系统高频面试考点总结
    【面经系列】一线互联网大厂前端面试技巧深入浅出总结
    【编程题与分析题】Javascript 之继承的多种实现方式和优缺点总结
    【计算机网络】TCP基础知识详解
    【操作系统】操作系统面试基础知识点总结
    【数据结构与算法】数据结构基础知识总结(面试考点)
    【前端知识体系-JS相关】JS-Web-API总结
  • 原文地址:https://www.cnblogs.com/codecombat/p/12718407.html
Copyright © 2020-2023  润新知