zoukankan      html  css  js  c++  java
  • 「网易官方」极客战记(codecombat)攻略-游戏开发2-硬币游戏第 3 步:敌人-game-of-coins-step-3-enemies

                                                                                                                                                            (点击图片进入关卡)

    让我们在我们的游戏中添加一些敌人。

    简介

    在第三步的 Pac-Man 风格街机游戏系列中,我们会将敌人添加到游戏中。

    敌人使我们的游戏变得更具挑战性,难以预测。

    我们正在制作一个 “逃跑与捕捉” 式的游戏,在这种游戏中,如果敌人抓到玩家,敌人立即击败玩家

    我们将使用 "one-hit" 机制,所以敌人的攻击伤害应该大于或等于玩家的最大生命值。

    玩家必须避开食人魔...... 除非他们有加电(我们将在下一级创建加电)!

    使用键盘或鼠标进行播放器控制:

    1. W -> 向上
    2. S -> 向下
    3. A -> 左边
    4. D -> 右边
    5. 鼠标点击 -> 移动到该点

    默认代码

    # 创建Pac-Man风格街机游戏的第3步。
    # 游戏布局和项目。 向下滚动。
    game.spawnXY("forest", 16, 16)
    game.spawnXY("forest", 32, 16)
    game.spawnXY("forest", 48, 16)
    game.spawnXY("forest", 64, 16)
    game.spawnXY("forest", 16, 32)
    game.spawnXY("forest", 32, 32)
    game.spawnXY("forest", 48, 32)
    game.spawnXY("forest", 64, 32)
    game.spawnXY("forest", 16, 48)
    game.spawnXY("forest", 32, 48)
    game.spawnXY("forest", 48, 48)
    game.spawnXY("forest", 64, 48)
    game.spawnXY("bronze-coin", 16, 8)
    game.spawnXY("bronze-coin", 24, 8)
    game.spawnXY("bronze-coin", 32, 8)
    game.spawnXY("bronze-coin", 48, 8)
    game.spawnXY("bronze-coin", 56, 8)
    game.spawnXY("bronze-coin", 64, 8)
    game.spawnXY("bronze-coin", 72, 8)
    game.spawnXY("bronze-coin", 8, 16)
    game.spawnXY("bronze-coin", 24, 16)
    game.spawnXY("bronze-coin", 40, 16)
    game.spawnXY("bronze-coin", 56, 16)
    game.spawnXY("bronze-coin", 72, 16)
    game.spawnXY("bronze-coin", 8, 24)
    game.spawnXY("bronze-coin", 16, 24)
    game.spawnXY("bronze-coin", 24, 24)
    game.spawnXY("bronze-coin", 32, 24)
    game.spawnXY("bronze-coin", 40, 24)
    game.spawnXY("bronze-coin", 48, 24)
    game.spawnXY("bronze-coin", 56, 24)
    game.spawnXY("bronze-coin", 64, 24)
    game.spawnXY("bronze-coin", 72, 24)
    game.spawnXY("bronze-coin", 24, 32)
    game.spawnXY("bronze-coin", 56, 32)
    game.spawnXY("bronze-coin", 8, 40)
    game.spawnXY("bronze-coin", 16, 40)
    game.spawnXY("bronze-coin", 24, 40)
    game.spawnXY("bronze-coin", 32, 40)
    game.spawnXY("bronze-coin", 40, 40)
    game.spawnXY("bronze-coin", 48, 40)
    game.spawnXY("bronze-coin", 56, 40)
    game.spawnXY("bronze-coin", 64, 40)
    game.spawnXY("bronze-coin", 72, 40)
    game.spawnXY("bronze-coin", 8, 48)
    game.spawnXY("bronze-coin", 24, 48)
    game.spawnXY("bronze-coin", 40, 48)
    game.spawnXY("bronze-coin", 56, 48)
    game.spawnXY("bronze-coin", 72, 48)
    game.spawnXY("bronze-coin", 8, 56)
    game.spawnXY("bronze-coin", 16, 56)
    game.spawnXY("bronze-coin", 24, 56)
    game.spawnXY("bronze-coin", 32, 56)
    game.spawnXY("bronze-coin", 48, 56)
    game.spawnXY("bronze-coin", 56, 56)
    game.spawnXY("bronze-coin", 64, 56)
    game.spawnXY("bronze-coin", 72, 56)
    game.spawnXY("mushroom", 40, 8)
    game.spawnXY("mushroom", 8, 32)
    game.spawnXY("mushroom", 72, 32)
    game.spawnXY("mushroom", 40, 56)
    game.score = 1000
    ui.track(game, "time")
    ui.track(game, "score")
    # 让我们在没有能力强化的情况下简化游戏。
    game.addCollectGoal(10)
    game.addSurviveGoal()
    player = game.spawnPlayerXY("knight", 8, 8)
    player.maxSpeed = 32
    def onCollect(event):
        player = event.target
        item = event.other
        if item.type == "bronze-coin":
            game.score += 1
        if item.type == "mushroom":
            game.score += 5
    player.on("collect", onCollect)
    # 在中心生成一个怪物“生成器”:
    # 将生成器spawnType设置为“scout”。
    # 将生成器spawnDelay设置为大于5的值
    # 这个函数配置新产生的侦察兵。
    def onSpawn(event):
        unit = event.target
        unit.maxSpeed = 8
        # 将单位的攻击伤害设置为
        # 大于或等于玩家的Max Health.

     

    # 将"scout"s'"spawn"事件的处理程序设置为OnSPOWN
    def checkTimeScore():
        game.score -= 0.5
        if game.score < 0:
            game.score = 0
    while True:
        checkTimeScore()
    # 赢得游戏胜利。

    概览

    敌人会给你的游戏增添刺激。

    你可以在游戏中使用许多不同类型的敌人:他们可以与玩家作战, 他们可以追逐和抓住玩家,或者他们可以成为竞争者(比如赛车游戏)。

    如果我们使用 "generator" ,将敌人加入我们的游戏将会很简单。

    但是随着时间的推移会产生敌人,所以我们应该使用 "spawn" 事件来配置它们。

    目前,我们不能击败敌人,所以不需要 "defeat" 事件。 另外,最好让它们变慢,否则这将是一场非常艰难的比赛。

    硬币游戏第 3 步:敌人 解法

    # 游戏布局和项目。 向下滚动。
    game.spawnXY("forest", 16, 16)
    game.spawnXY("forest", 32, 16)
    game.spawnXY("forest", 48, 16)
    game.spawnXY("forest", 64, 16)
    game.spawnXY("forest", 16, 32)
    game.spawnXY("forest", 32, 32)
    game.spawnXY("forest", 48, 32)
    game.spawnXY("forest", 64, 32)
    game.spawnXY("forest", 16, 48)
    game.spawnXY("forest", 32, 48)
    game.spawnXY("forest", 48, 48)
    game.spawnXY("forest", 64, 48)
    game.spawnXY("bronze-coin", 16, 8)
    game.spawnXY("bronze-coin", 24, 8)
    game.spawnXY("bronze-coin", 32, 8)
    game.spawnXY("bronze-coin", 48, 8)
    game.spawnXY("bronze-coin", 56, 8)
    game.spawnXY("bronze-coin", 64, 8)
    game.spawnXY("bronze-coin", 72, 8)
    game.spawnXY("bronze-coin", 8, 16)
    game.spawnXY("bronze-coin", 24, 16)
    game.spawnXY("bronze-coin", 40, 16)
    game.spawnXY("bronze-coin", 56, 16)
    game.spawnXY("bronze-coin", 72, 16)
    game.spawnXY("bronze-coin", 8, 24)
    game.spawnXY("bronze-coin", 16, 24)
    game.spawnXY("bronze-coin", 24, 24)
    game.spawnXY("bronze-coin", 32, 24)
    game.spawnXY("bronze-coin", 40, 24)
    game.spawnXY("bronze-coin", 48, 24)
    game.spawnXY("bronze-coin", 56, 24)
    game.spawnXY("bronze-coin", 64, 24)
    game.spawnXY("bronze-coin", 72, 24)
    game.spawnXY("bronze-coin", 24, 32)
    game.spawnXY("bronze-coin", 56, 32)
    game.spawnXY("bronze-coin", 8, 40)
    game.spawnXY("bronze-coin", 16, 40)
    game.spawnXY("bronze-coin", 24, 40)
    game.spawnXY("bronze-coin", 32, 40)
    game.spawnXY("bronze-coin", 40, 40)
    game.spawnXY("bronze-coin", 48, 40)
    game.spawnXY("bronze-coin", 56, 40)
    game.spawnXY("bronze-coin", 64, 40)
    game.spawnXY("bronze-coin", 72, 40)
    game.spawnXY("bronze-coin", 8, 48)
    game.spawnXY("bronze-coin", 24, 48)
    game.spawnXY("bronze-coin", 40, 48)
    game.spawnXY("bronze-coin", 56, 48)
    game.spawnXY("bronze-coin", 72, 48)
    game.spawnXY("bronze-coin", 8, 56)
    game.spawnXY("bronze-coin", 16, 56)
    game.spawnXY("bronze-coin", 24, 56)
    game.spawnXY("bronze-coin", 32, 56)
    game.spawnXY("bronze-coin", 48, 56)
    game.spawnXY("bronze-coin", 56, 56)
    game.spawnXY("bronze-coin", 64, 56)
    game.spawnXY("bronze-coin", 72, 56)
    game.spawnXY("mushroom", 40, 8)
    game.spawnXY("mushroom", 8, 32)
    game.spawnXY("mushroom", 72, 32)
    game.spawnXY("mushroom", 40, 56)
    game.score = 1000
    ui.track(game, "time")
    ui.track(game, "score")
    # 让我们在没有能力强化的情况下简化游戏。
    game.addCollectGoal(10)
    # 添加一个生存的目标,因为我们现在有敌人:
    game.addSurviveGoal()
    player = game.spawnPlayerXY("knight", 8, 8)
    player.maxSpeed = 32
    def onCollect(event):
        player = event.target
        item = event.other
        if item.type == "bronze-coin":
            game.score += 1
        if item.type == "mushroom":
            game.score += 5
    player.on("collect", onCollect)
    # 在中心生成一个怪物“生成器”:
    generator = game.spawnXY("generator", 41, 31)
    # 将生成器spawnType设置为“scout”。
    generator.spawnType = "scout"
    # 将生成器spawnDelay设置为大于5的值
    generator.spawnDelay = 6
    # 这个函数配置新产生的侦察兵。
    def onSpawn(event):
        unit = event.target
        unit.maxSpeed = 8
        # 将单位的攻击伤害设置为
        # 大于或等于玩家的Max Health.
        unit.attackDamage = player.maxHealth
    # 将"scout"s'"spawn"事件的处理程序设置为OnSPOWN
    game.setActionFor("scout", "spawn", onSpawn)
    def checkTimeScore():
        game.score -= 0.5
        if game.score < 0:
            game.score = 0
    while True:
        checkTimeScore()
    # 赢得游戏胜利。
     

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

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

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

  • 相关阅读:
    linux驱动---等待队列、工作队列、Tasklets【转】
    Pinctrl子系统之一了解基础概念【转】
    Linux内存管理(最透彻的一篇)【转】
    linux驱动学习笔记---实现中断下半部以及驱动编写规范(七)【转】
    一些网址下载【转】
    Linux /proc/$pid部分内容详解【转】
    Linux kernel workqueue机制分析【转】
    Linux进程核心调度器之主调度器schedule--Linux进程的管理与调度(十九)【转】
    Linux Kernel PANIC(三)--Soft Panic/Oops调试及实例分析【转】
    Linux内核调试的方式以及工具集锦【转】
  • 原文地址:https://www.cnblogs.com/codecombat/p/12852285.html
Copyright © 2011-2022 走看看