# 在地图中我们用坐标来定位Dev和收集物的位置,坐标主要由两个字母来表示,

# 他们在地图中横向的位置用x表示,例如:Dev在横向的坐标位置为 Dev.x

# 纵向的位置用y表示

# Dev在纵向的坐标位置为 Dev.y

# x坐标的值从左往右依次增大,可以参考地图左上角的红色箭头,顺箭头方向x坐标依次增大

# 如图所示右边的收集物的x坐标 > Dev的x坐标

# 我们可以通过: d = Item.x - Dev.x

# 计算Dev与收集物之间的距离,并保存在变量d中

d = Item.x - Dev.x

# 用变量d代替Dev的移动步数

Dev.step(d)


# 同样的飞船在地图中的位置也可用坐标来表示,飞船的横坐标:Spaceship.x,飞船的纵坐标:Spaceship.y

# 例如在这一关中,无法打开地图网格,那么通过坐标计算飞船的移动步数就十分方便高效

# 移动的步数也可以直接用计算公式Item.x - Spaceship.x来代替,如下代码所示:


py20.png

# 查看地图飞船和收集物之间的位置,应用坐标的相关内容,补充完成下面的代码编写

# 注意:坐标值大的减去坐标值小的,得到的步数为正数

Spaceship.step(Spaceship.x-Item.x)

Spaceship.turnRight()

Spaceship.step(Spaceship.y-Item.y)


付个案例:

# 例如左边的地图中,距离Dev由近至远分别为:Item[0],Item[1],Item[2],Item[3];
# 索引值由0开始,依次增加,也可以通过for循环遍历Item,例如:
# for i in range(4):
#     d = Item[i].x - Spaceship.x
# 查看地图飞船和收集物之间的位置,应用坐标的相关内容,补充完成下面的代码编写
for i in range(4):
    Spaceship.step(2)
    Dev.step(Item[i].x-Spaceship.x)
    Dev.step(Spaceship.x-Item[i].x)