GAME_DEV_3.py
🎮

游戏开发 3:终极指南

Game Development 3

🔴 核心逻辑 (Logic)
🔵 数据管理 (Data)
🟡 物理与空间 (Physics)
🟢 游戏设计 (Design)
🔔

1. 事件驱动编程

Logic
事件 (Event):门铃响了。
处理器 (Handler):跑去开门。

程序不是从头跑到尾,而是“等待事情发生”

def onUpdate(event):
  # 每一帧都会运行的代码
  checkEnemies()
📜

2. 函数 (Functions)

Logic

函数就像厨房里的食谱!写好步骤,下次直接用。

def shouldAttack(who, target):
  if who.type == "scout":
    return True
Def: 定义新技能。
Return: 给出答案。
📝 ➡️ 🍳
🔀

3. 条件语句 (If/Else)

Logic

程序做决定的时刻。

if rain:
  takeUmbrella()
elif cloudy:
  takeCoat()
else:
  goPlay()
逻辑运算符
and (且), or (或), not (非)
🤔 ➡️ 🌂 / 🧢
🔄

4. 循环 (Loops)

Logic

重复做同一件事。

while spawnNum > 0:
  spawnEnemy()
  spawnNum -= 1
while: 只要条件满足就一直做。
for: 对每个东西做一遍。
🔁
📦

5. 变量与数据类型

Data

变量是贴了标签的储物箱。

  • 🔢 数字: 5, 3.14
  • 🔤 字符串: "hello"
  • 🔘 布尔值: True, False
damage = 20
scale *= 1.2
📦 = 🍎
box = "apple"
🤠

6. 对象与属性

Data

对象 (Object):游戏里的角色。

unit.pos.x = 40
player.maxSpeed = 20
属性:特征 (health, pos)
方法:动作 (move(), attack())
用点号 . 来访问。
🧙‍♂️
{ hp: 100, mp: 50 }
🗺️

7. 坐标系 (Coordinates)

Phys

教室里的座位表 (X, Y)。

  • ➡️ X: 左右
  • ⬆️ Y: 上下
  • 📍 (0,0): 原点 (左下角)
unit.pos.x += 6
X:0 Y:0
🏃

8. 运动 (Movement)

Phys

让东西动起来!

dist = speed * dir
fence.pos.y += dist
速度:快慢。
方向:正负号 (+/-)。
平滑移动:每帧加一点点。
🏃
💓

9. 游戏循环 (Game Loop)

Game

游戏的心脏,每秒跳动几十次。

def onUpdateGame(event):
  checkPlayer()
  checkSpawns()
  game.score += event.deltaTime

不断更新画面、位置和分数。

💗
💥

10. 碰撞检测 (Collision)

Phys

判断两个物体是否撞上了。

def onCollide(event):
  other = event.other
  if other.type == "fence":
    unit.defeat()
💥
🎲

11. 随机数 (Random)

Game

让游戏充满惊喜(抽奖!)。

x = game.randomInteger(10, 70)
type = game.randomInteger(0, 1)
随机位置:怪物在哪出现?
随机掉落:掉金币还是药水?
?
📊

12. 状态管理

Game

游戏的记分板。

  • 🏆 Score: 得分
  • ⏱️ Time: 剩余时间
  • 🚩 Goal: 胜利目标
game.score = 0
goal = game.addManualGoal("存活20秒")
SCORE: 00950
TIME: 00:30
💾

13. 数据持久化

Data

像写日记一样把最高分记下来,关掉游戏也不会丢。

# 读取
best = db.get("topScore") or 0

# 保存
db.set("topScore", game.score)
📔
⚖️

14. 游戏平衡

Design

让游戏既有挑战性又好玩。

GAME_SPEED = 0.6
PLAYER_SPEED = 20
调参:太难了?怪物慢一点。
太简单了?时间短一点。
🎚️
🧠

15. 算法思维

Code

解决问题的步骤:

  1. 👀 Observe: 找到最近敌人。
  2. 🤔 Decide: 该打吗?(判断距离/类型)。
  3. 🏃 Act: 攻击或逃跑。
1️⃣ ➡️ 2️⃣ ➡️ 3️⃣
🐞

16. 调试 (Debugging)

Code

找错别字,修 Bug。

技巧:
1. 使用 print()hero.say()
2. 检查拼写和缩进。
3. 一步一步运行。
🛠️
♻️

17. 代码重用

Code

不要重复造轮子!

写好一个函数 spawnRandom(),在每一关里都能用。

就像乐高积木,用同样的块搭出不同的城堡。
🧱
🎉

恭喜通关!

你是真正的游戏开发者!

带着这些知识,去创造属于你的世界吧!

🌟 🚀 🎮