• 「网易官方」极客战记(codecombat)攻略-游戏开发2-切换目标-stick-shift


                                                                             (点击图片进入关卡)

    了解如何为您的游戏创建自定义目标!

    简介

    现在您可以为您的游戏创建自定义目标!

    我们将它们称为手动目标,因为您负责将它们手动标记为成功或失败。 像这样创建一个手动目标:

    myGoal = game.addManualGoal("击败骷髅,救下射手!")
    def onDefeat(event):
        unit = event.target
        if unit.type == "skeleton":
            game.setGoalState(myGoal, True)
        if unit.type == "archer":
            game.setGoalState(myGoal, False)
    game.setActionFor("archer", "defeat", onDefeat)
    game.setActionFor("skeleton", "defeat", onDefeat)

    默认代码

    # 现在你可以为你的游戏创建一个自定义目标
    # 使用 game.addManualGoal(描述)方法!
    # 构建一些侦察员,老板和迷宫。
    game.spawnMaze(5)
    game.spawnXY("scout", 60, 58)
    game.spawnXY("scout", 28, 29)
    game.spawnXY("scout", 61, 24)
    ogref = game.spawnXY("ogre-f", 60, 12)
    # 构建并配置英雄。
    hero = game.spawnPlayerXY("captain", 12, 56)
    hero.maxHealth = 550
    hero.maxSpeed = 10
    hero.attackDamage = 25
    # 构建一个兽人生成器。
    generator = game.spawnXY("generator", 41, 13)
    generator.spawnDelay = 5
    generator.spawnType = "munchkin"
    # 存活目标。
    game.addSurviveGoal()
    game.spawnXY("potion-medium", 28, 12)
    # addManualGoal添加一个描述不完整的目标
    # 描述将显示给玩家。
    # 注意要将其保存在名为scoutGoal的变量中
    scoutGoal = game.addManualGoal("Defeat all scouts")
    # 使用addManualGoal添加一个目标来击败Boss
    # 将其保存在名为bossGoal的变量中
    # 敌人的行为
    def onSpawn(event):
        unit = event.target
        while True:
            enemy = unit.findNearestEnemy()
            if enemy:
                unit.attack(enemy)
    game.setActionFor("scout", "spawn", onSpawn)
    game.setActionFor("ogre", "spawn", onSpawn)
    # 计算有多少侦察兵被打败..
    scoutsDefeated = 0
    # 每当敌人失败时更新我们的自定义目标。
    # 这是一个使用if语句的算法的例子。
    def onDefeat(event):
        unit = event.target
        if unit.type == "scout":
            scoutsDefeated += 1
            hero.say("Scout down!")
        if scoutsDefeated >= 3:
            # 使用setGoalState标记达成的侦察目标。
            game.setGoalState(scoutGoal, True)
            hero.say("All Scouts down!")
        if unit.type == "ogre":
            # 使用game.setGoalState标记boss目标达到。
            # 不要忘记第二个参数。

     

            hero.say("Defeated the big boss!")
    # 将失败处理程序分配给食人魔"defeat"
    # 注意兽人是不会成功的!
    game.setActionFor("scout", "defeat", onDefeat)
    game.setActionFor("ogre", "defeat", onDefeat)

    概览

    敬请期待!

    切换目标 解法

    # 现在你可以为你的游戏创建一个自定义目标
    # 使用 game.addManualGoal(描述)方法!
    # 构建一些侦察员,老板和迷宫。
    game.spawnMaze(5)
    game.spawnXY("scout", 60, 58)
    game.spawnXY("scout", 28, 29)
    game.spawnXY("scout", 61, 24)
    ogref = game.spawnXY("ogre-f", 60, 12)
    # 构建并配置英雄。
    hero = game.spawnPlayerXY("captain", 12, 56)
    hero.maxHealth = 550
    hero.maxSpeed = 10
    hero.attackDamage = 25
    # 构建一个兽人生成器。
    generator = game.spawnXY("generator", 41, 13)
    generator.spawnDelay = 5
    generator.spawnType = "munchkin"
    # 存活目标。
    game.addSurviveGoal()
    game.spawnXY("potion-medium", 28, 12)
    # addManualGoal添加一个描述不完整的目标
    # 描述将显示给玩家。
    # 注意要将其保存在名为scoutGoal的变量中
    scoutGoal = game.addManualGoal("Defeat all scouts")
    # 使用addManualGoal添加一个目标来击败Boss
    # 将其保存在名为bossGoal的变量中
    bossGoal = game.addManualGoal("Defeat the big boss!")
    # 敌人的行为
    def onSpawn(event):
        unit = event.target
        while True:
            enemy = unit.findNearestEnemy()
            if enemy:
                unit.attack(enemy)
    game.setActionFor("scout", "spawn", onSpawn)
    game.setActionFor("ogre", "spawn", onSpawn)
    # 计算有多少侦察兵被打败..
    scoutsDefeated = 0
    # 每当敌人失败时更新我们的自定义目标。
    # 这是一个使用if语句的算法的例子。
    def onDefeat(event):
        unit = event.target
        if unit.type == "scout":
            scoutsDefeated += 1
            hero.say("Scout down!")
        if scoutsDefeated >= 3:
            # 使用setGoalState标记达成的侦察目标。
            game.setGoalState(scoutGoal, True)
            hero.say("All Scouts down!")
        if unit.type == "ogre":
            # 使用game.setGoalState标记boss目标达到。
            # 不要忘记第二个参数。
            game.setGoalState(bossGoal, True)
            hero.say("Defeated the big boss!")
            hero.say("Defeated the big boss!")
    # 将失败处理程序分配给食人魔"defeat"
    # 注意兽人是不会成功的!
    game.setActionFor("scout", "defeat", onDefeat)
    game.setActionFor("ogre", "defeat", onDefeat)
     
     

    本攻略发于极客战记官方教学栏目,原文地址为:

    https://codecombat.163.com/news/jikezhanji-qiehuanmubiao

    极客战记——学编程,用玩的!

  • 相关阅读:
    纯awk传参和awk脚本传参
    【转】MySQL 备份和恢复(MyISAM 和 Innodb)
    【z】多线程Java Socket编程示例
    Java,Tomcat,Mysql乱码总结
    mysql备份与同步shell脚本
    【转】Velocity用户手册中文版(学习修改版)
    wml新学的标签
    【原】小心log4j的多进程写入
    【z】Webservice 的设计和模式
    【z】linux面试题参考答案
  • 原文地址:https://www.cnblogs.com/codecombat/p/12777353.html
Copyright © 2020-2023  润新知