🎮 游戏开发 I 🗺️

CodeCombat 编程冒险指南

🏰 ⚔️ 💎

准备好开始你的代码之旅了吗?
让我们一起去探索笛卡尔坐标和宝石的秘密!

包含关卡:第 1 - 6 关

本节课关卡

扣哒世界 · 游戏开发1 · Python · 第1–6关

Python · 本节课关卡

01 · 越过花园墙

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

02 · 点击步态

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

03 · 英雄的旅程

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

04 · 太-棒-了

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

05 · 宝石太棒了

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

06 · 风险与回报

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

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

🗺️ 游戏开发1 - 越过花园墙 LEVEL 1

笛卡尔坐标系 📐

Cartesian Coordinate System

💡 什么是坐标?
想象你在一个大城市里。X轴是街道的宽度(左右走),Y轴是楼层的高度(上下走)。
每一个位置都有一个名字,比如 (39, 16)。
🚧 任务
我们需要在草地上修栅栏!
(39, 16)
# game.spawnXY(类型, x坐标, y坐标)

# 在 x=39, y=16 的地方放一个围栏
game.spawnXY("fence", 39, 16)

# 往上一点,y变成20,再放一个!
game.spawnXY("fence", 39, 20)
👉 改变 Y 坐标,物体就会垂直移动哦!
📏
🗺️ 游戏开发1 - 点击步态 LEVEL 2

事件驱动编程 🖱️

Event-driven Programming

💡 什么是事件?
就像你按遥控器电视会换台一样。在游戏里,"鼠标点击"就是一个事件。
程序会监听你的点击,然后命令角色走过去。
🏃 任务
点击屏幕,告诉骑士要走到哪里去!
# 1. 先把骑士召唤出来
game.spawnPlayerXY("knight", 5, 8)

# 2. 告诉系统:如果玩家点击了,就走到这里
game.addMoveGoalXY(10, 18)
game.addMoveGoalXY(10, 38)
👆 addMoveGoalXY 就是在设置移动的目标点
👆
🗺️ 游戏开发1 - 英雄的旅程 LEVEL 3

游戏目标 🏁

Game Goals

💡 为什么要设置目标?
没有目标的游戏就像没有球门的足球赛!
我们需要告诉玩家:“嘿,你得走到那个位置才能赢!”。
🦸 任务
我是队长(Captain),我要走到地图的尽头 (53, 45)!
# 生成一个叫 "captain" 的英雄
game.spawnPlayerXY("captain", 9, 9)

# 设定获胜条件:走到 (53, 45)
game.addMoveGoalXY(53, 45)
🚀 只要走到那个坐标,屏幕就会显示 VICTORY (胜利)!
🏆
🗺️ 游戏开发1 - 太-棒-了 LEVEL 4

收集目标 🎒

Collecting Goals

💡 寻宝游戏
除了走路,我们还可以让玩家去收集东西。
比如金币、钥匙、或者神秘的宝箱。
💎 任务
看到那个宝箱了吗?我们需要设置一个“收集目标”,玩家必须把它捡起来才能赢。
# 告诉游戏:玩家必须收集完所有物品
game.addCollectGoal()

# 在 (8, 14) 放一个宝箱
game.spawnXY("chest", 8, 14)

# 顺便种棵树装饰一下
game.spawnXY("forest", 26, 51)
📦
🗺️ 游戏开发1 - 宝石太棒了 LEVEL 5

宝石元素 💎

Gem Elements

💡 亮闪闪的奖励
宝石 (Gem) 是游戏里最常见的奖励。
它们通常代表分数或者通关的关键道具。
✨ 任务
在地图的不同角落撒下宝石,让玩家去探索吧!
# 这里有一颗...
game.spawnXY("gem", 28, 28)

# 那里也有一颗...
game.spawnXY("gem", 69, 10)

# 别忘了角落里这颗!
game.spawnXY("gem", 9, 36)
Tip: 坐标间隔远一点,游戏会更好玩!
✨
🗺️ 游戏开发1 - 风险与回报 LEVEL 6

条件设置 🔢

Conditional Settings

💡 制定规则
游戏不能太简单!我们可以设置更具体的规则。
比如:“你不需要收集所有宝石,但你必须至少收集6颗才能过关。”
🎲 任务
设置一个数字条件。这就叫“风险与回报”,玩家需要自己决定走哪条路去凑够6颗宝石。
# 设置收集目标为:6
game.addCollectGoal(6)

# (地图上可能生成了10颗宝石,
# 但玩家只需要找到其中6颗就行)
📝 括号里的数字就是通关条件!
🎲

我的知识宝藏 · 一页复习

扣哒世界 · 游戏开发1 · Python · 第1–6关

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

笛卡尔坐标系 📐

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

game.spawnXY("fence", 39, 16)

事件驱动编程 🖱️

事件发生时执行对应处理;鼠标点击可以让玩家角色走向点击位置。

game.spawnPlayerXY("knight", 5, 8)

游戏目标 🏁

先创建玩家,再指定到达位置、收集数量或击败目标,形成通关规则。

game.addMoveGoalXY(53, 45)

收集目标 🎒

addCollectGoal() 要求收集全部物品;传入数量可以指定需要收集几个。

game.addCollectGoal()

宝石元素 💎

用 spawnXY 在指定坐标生成 gem 宝石,再配合收集目标设计寻宝路线。

game.spawnXY("gem", 28, 28)

条件设置 🔢

给收集目标传入数量,只要达到指定数量就能满足这一目标。

game.addCollectGoal(6)

本节课关卡:1. 越过花园墙;2. 点击步态;3. 英雄的旅程;4. 太-棒-了;5. 宝石太棒了;6. 风险与回报