「网易官方」极客战记(codecombat)攻略-山峰_峭壁追逐_crag-tag

(点击图片进入关卡)

使用你最好的鞋子去追上 Pender Spellbane。

简介

move 与 moveXY 不同!

move(pos) 有一个参数,而不是 moveXY(x,y) 的两个参数。

你可以用它来移动金币的位置,比如 move(coin.pos) ,而不是 moveXY(coin.pos.x, coin.pos.y)

默认代码

# 抓住 Pender Spellbane 去了解她的秘密。
while True:
    # Pender是这里唯一的朋友,所以她总是在最近的位置。
    pender = hero.findNearest(hero.findFriends())
    if pender:
        # moveXY()将移动到 Pender 在的位置,
        # 但是她会向远离你的位置移动。
        hero.moveXY(pender.pos.x, pender.pos.y)

 

        # move()只一次移动一步。
        # 所以你可以用它来追踪你的目标。
        #hero.move(pender.pos)

概览

moveXY vs move

这关展示了旧的 moveXY 动作和新的 move 动作之间的差异。

(x,y) vs (pos)

要使用 move ,需要指定一个 位置 向其移动。

"位置" 是一种拥有一个 x 属性和一个 y 属性的对象。你以前曾经像这样使用 moveXY :

self.moveXY(coin.pos.x, coin.pos.y)

但是现在使用 move 你只需要把 pos 对象作为参数,就像这样:

self.move(coin.pos)

阻止运行还是继续运行?

使用 moveXY 你的程序将会停止运行 直到你的英雄已经到达了指定的坐标 (x,y) 。

使用 move 你的英雄将会 向着 你指定的 pos 移动,但是 你的程序将会继续运行.

这意味着你的英雄只会在 pos 的方向上移动很少的步数,但你的程序能继续运行下去,所以你可以在下一个循环代码中,通过做不同的动作来中断移动.

峭壁追逐解法

# 抓住 Pender Spellbane 去了解她的秘密。
while True:
    # Pender是这里唯一的朋友,所以她总是在最近的位置。
    pender = hero.findNearest(hero.findFriends())
    if pender:
        # moveXY()将移动到 Pender 在的位置,
        # 但是她会向远离你的位置移动。
        hero.moveXY(pender.pos.x, pender.pos.y)

 

        # move()只一次移动一步。
        # 所以你可以用它来追踪你的目标。
        hero.move(pender.pos)
 
本攻略发于极客战记官方教学栏目,原文地址为:
原文地址:https://www.cnblogs.com/codecombat/p/13541602.html