「网易官方」极客战记(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

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

原文地址:https://www.cnblogs.com/codecombat/p/12852285.html