第 7 课 · Découverte

移动精灵

精灵就是矩形:x、y、速度、循环。整个游戏就住在这四个词里。

~11 min7 个关卡
▶ 视频🧩 练习📄 备忘单

42 秒 · 含中文字幕 · 8.4 Mo

你会学会的 7 件事

第 7 课:移动精灵

Regarde la leçon (42 s) : tout jeu vidéo se résume à faire bouger les coordonnées d'un rectangle. Spoiler : c'est fait.

位置,两个数字

Pose la position de départ : `x = 10` et `y = 20`. Ton sprite n'existe pas encore — il est juste quelque part.

移动就是加法

Écris `avancer(x, vitesse)` qui renvoie la nouvelle position en x. Flèche droite = vitesse positive, flèche gauche = négative.

两个轴

Écris `deplace(x, y, dx, dy)` qui renvoie la nouvelle position sous forme de tableau `[nouveau_x, nouveau_y]` — les deux axes en une seule passe.

每秒六十次

Écris `anime(x, tours, vitesse)` : à chaque tour, on avance de `vitesse`. Après 60 tours à vitesse 1 depuis 0, x vaut 60 — sans écrire 60 lignes.

按键选符号

Écris `touche(fleche, x, vitesse)` : "droite" → x + vitesse · "gauche" → x − vitesse · toute autre touche → x inchangé. Ta touche ne pousse rien, elle choisit un signe.

第 7 课:OK

Sans aide : `bouge(x, dx, largeur = 100)` — avance de dx, mais reste DANS l'écran : la position finale reste toujours entre 0 et `largeur` inclus.

分享这一课

← 全部课程

📄 备忘单

打印出来贴显示器上,就当是你自己的主意

📄 备忘单 — 移动精灵(x, y 在空间里)

精灵就是矩形。移动就是对两个数字做算术。好了——你已经是 game dev 了。

行业里的四个词

词 它是什么 例子
位置 它在哪,两个数字 x = 10, y = 20
速度 它动多少 vitesse = 5
增量 这一帧的变化 dx = vitesse
循环 再来一遍,60 次/秒 regarde → déplace → redessine

移动 = 加法

x = 10
x += 5     # 右   (x = 15)
x -= 5     # 左   (x = 10)

def avancer(x, vitesse)
  x + vitesse   # 【负】速度就是往左——就这么简单
end

两个轴,一遍过

def deplace(x, y, dx, dy)
  [x + dx, y + dy]     # 斜线 = 两个都动
end

deplace(0, 0, 3, 4)   # => [3, 4]

屏幕备忘: x → 左/右(手柄上经常是反的 😉),y → 上/下。 屏幕顶端,y 变小:原点 (0,0) 在左上角,多数引擎都这样。

驱动整个游戏的循环

def anime(x, tours, vitesse)
  tours.times { x += vitesse }   # 60 帧 = 一秒游戏
  x
end

anime(0, 60, 1)   # => 60

游戏不是在动:它在重复。 你玩的时候,唯一发生的就是这个。

按键选择符号

case fleche
when "droite" then x + vitesse
when "gauche" then x - vitesse
else x              # 不认识的键:什么都不动
end

按键什么也不推:它选的是 + 还是 −。

屏幕边缘的坑

(x + dx).clamp(0, largeur)   # 不低于 0,不超过宽度

没有 clamp,你的矩形就去虚空旅游了——玩家会让你买单。

以后别再说

  • 「精灵在前进」 → 是你的坐标在前进,矩形还是那个矩形
  • 「游戏引擎」 → 移动一个方块不需要引擎。只需要一个 +。

SlopCourse Microduck — 从 slop 到干净的代码。