GAME DEV 2 SCORE ATTACK 第 22 关
🏆

分数 (Score)

打造你的计分系统

+ 加分
- 扣分
📟

记分牌变量:game.score

game.score 就是游戏里的记分牌。

一开始,我们要在上面写一个数字(初始化)。

# 1. 初始化分数 (赋值)
game.score = 1000

# 2. 在屏幕上显示
ui.track(game, "score")
"UI 小帮手,帮我把这个分数挂在屏幕上!"
SCORE
1000
💰

捡东西加分:onCollect

当触发 collect 事件时,我们要判断捡到了什么。

def onCollect(event):
  item = event.other
  # 捡到铜币
  if item.type == "bronze-coin":
    game.score += 1
  # 捡到蘑菇
  if item.type == "mushroom":
    game.score += 5
1000
¢
🍄
点击物品加分

自增运算符 +=

这是程序员的偷懒写法:

score += 5

⬇️ 等价于 ⬇️

score = score + 5
"在原来的分数基础上,再加 5 分!"
+=

与时间赛跑:扣分逻辑

为了让游戏更刺激,分数会随时间流逝而减少。

def checkTimeScore():
  # 每一帧减去 0.5 分
  game.score -= 0.5

while True:
  checkTimeScore()

-=:自减运算符。每过一小会儿,就扣掉一点点。

1000
分数正在流失...
🛑

底线:不能变成负数

如果一直扣分,变成 -100 分就太难看了。

if game.score < 0:
  # 拉回 0 分
  game.score = 0
"就像地板:不管你怎么掉,最低只能掉到地板上,不会掉进地下室。"
Score = 0
📉
🎨

设计视角:为什么这样?

这一关把几个好点子结合了起来:

  • 🚀 高起始分 (1000):
    一开始就给你很多分,让你不想失去它。
  • 时间惩罚 (-0.5):
    逼迫玩家跑快点,制造紧张感。
  • 🎁 正向反馈 (+1 / +5):
    捡到东西立马奖励,鼓励探索。
⚖️

平衡游戏性

🏅

记分员口诀

"先给记分牌写个 1000
捡到宝物 += 加分。"
"时间滴答 -= 扣分,
掉到 0 分就停稳!"
🌟