CS3 计算机科学 3 | 第 47-55 关
X: 0, Y: 0
🚀

方向与坐标变化

Direction & Coordinate Changes

🗺️ 坐标导航
📐 相对运动

本节课关卡

扣哒世界 · 计算机科学3 · Python · 第47–55关

Python · 本节课关卡

47 · 强壮的沙牦牛

先读关卡目标,观察地图,再运用本课知识。

48 · 绿洲

先读关卡目标,观察地图,再运用本课知识。

49 · Sarven路

先读关卡目标,观察地图,再运用本课知识。

50 · 概念挑战. 干燥灌溉

先读关卡目标,观察地图,再运用本课知识。

51 · Sarven间隙

先读关卡目标,观察地图,再运用本课知识。

52 · 十字路口

先读关卡目标,观察地图,再运用本课知识。

53 · 截断

先读关卡目标,观察地图,再运用本课知识。

54 · 雷蹄

先读关卡目标,观察地图,再运用本课知识。

55 · 概念挑战. 友好的雷区

先读关卡目标,观察地图,再运用本课知识。

学习路线:读目标 → 看图解 → 写代码 → 运行检查

🌐

坐标系:宇宙地图

游戏世界是一张巨大的网格地图。

  • ➡️ X 坐标:横向地址 (Left - Right)
  • ⬆️ Y 坐标:纵向地址 (Up - Down)
hero.moveXY(30, 40)
"X=30, Y=40,就像宇宙中的导航坐标!"
(0,0)
X
Y
🚀
🕹️

方向控制台

移动就像在做加减法:

方向X 变化Y 变化
⬆️ 上不变+ 增加
⬇️ 下不变- 减少
➡️ 右+ 增加不变
⬅️ 左- 减少不变
# 向右上方飞
hero.moveXY(hero.pos.x + 10, hero.pos.y + 10)
🛸
⬆
⬅
●
➡
⬇
📉

实战 I:斜线飞行

同时改变 X 和 Y,就能走出斜线!

while True:
  # 向左上飞: X减, Y加
  newX = hero.pos.x - 6
  newY = hero.pos.y + 4
  hero.moveXY(newX, newY)

轨迹:↖️ 左上角

🚀
📡

实战 II:垂直追踪

根据敌人的高度 (Y坐标) 来调整自己的位置。

if enemy.pos.y > hero.pos.y:
  # 敌人在上,我也向上
  hero.moveXY(x, y + 4)
else:
  # 敌人在下,我也向下
  hero.moveXY(x, y - 4)
"就像电梯一样,跟着目标上下移动。"
🛸
👾
🧭

相对位置判断

比较坐标大小,就能知道方位:

  • 👉 enemy.x > hero.x : 敌人在右边
  • 👈 enemy.x < hero.x : 敌人在左边
  • 👆 enemy.y > hero.y : 敌人在上边
  • 👇 enemy.y < hero.y : 敌人在下边
(x>, y>)
📏

距离计算 (Math)

虽然有 distanceTo(),但用坐标差也能算距离。

# 水平距离 (绝对值)
dist_x = abs(enemy.pos.x - hero.pos.x)

# 垂直距离
dist_y = abs(enemy.pos.y - hero.pos.y)
"abs() 是绝对值函数,把负数变正数。"
🚀
dist_x
👾
🎓

导航员口诀

"X 是左右,Y 是上下,
加减运算能搬家。"
"大于小于判方位,
精准导航靠数学!"
🌟

我的知识宝藏 · 一页复习

扣哒世界 · 计算机科学3 · Python · 第47–55关

Python · 知识点图
关键字方法 / 函数字符串数字

坐标系:宇宙地图

位置用横坐标 x、纵坐标 y 表示;目标坐标表示地点,不是要走的步数。

hero.moveXY(30, 40)

方向控制台

移动就像在做加减法:

hero.moveXY(hero.pos.x + 10, hero.pos.y + 10)

实战 I:斜线飞行

同时改变 X 和 Y,就能走出斜线!

newX = hero.pos.x - 6

实战 II:垂直追踪

根据敌人的高度 (Y坐标) 来调整自己的位置。

hero.moveXY(x, y + 4)

相对位置判断

比较坐标大小,就能知道方位:

enemy.x > hero.x

距离计算

虽然有 distanceTo(),但用坐标差也能算距离。

dist_x = abs(enemy.pos.x - hero.pos.x)

本节课关卡:47. 强壮的沙牦牛;48. 绿洲;49. Sarven路;50. 概念挑战. 干燥灌溉;51. Sarven间隙;52. 十字路口;53. 截断;54. 雷蹄;55. 概念挑战. 友好的雷区