(点击图片进入关卡)
让我们为我们的游戏添加一些挑战。
简介
在 Pac-Man 风格的街机游戏系列的第二层,我们将为游戏增添一些挑战。
首先,我们需要添加一个评分系统。 目标是尽可能快地收集所有硬币。
因此,我们可以将初始分数设置为某个值,并在每秒减少。 然后,添加收集硬币和蘑菇的分数。
此外,得分不能小于 0。
使用 ` collect' 事件和 游戏循环 来实现这个得分机制!
使用键盘或鼠标进行播放器控制:
- W -> 向上
- S -> 向下
- A -> 左边
- D -> 右边
- 鼠标点击 -> 移动到该点
默认代码
敬请期待
概览
向游戏添加可玩性的最简单方法之一是添加某种类型的分数系统 所以玩家可以一次又一次地玩你的游戏,试图提高他们的高分。
你可以打败的敌人,收集物品,移动到检查站等玩家的行为得到积分。
对于玩家应该快速完成某些目标的游戏,您可以根据游戏时间来定义分数。
您可以每秒减少分数或根据最后时间计算分数(有多种方法可供选择)。 此外,您可以降低 "incorrect" 操作的分数,例如收集受限项目,不可触摸字符,进入禁区等。
在你的游戏中实现一个评分系统有更多的方法 - 你应该富有创造性,并考虑如何在最终项目中实现评分。
游戏设计的一部分是关于想出新的东西!
硬币游戏第 2 步:得分 解法
# 第2部分创建一个Pac-Man风格的街机游戏。
# 游戏布局和项目。 向下滚动。
game.spawnXY("forest", 16, 16)
game.spawnXY("forest", 32, 16)
game.spawnXY("forest", 48, 16)
game.spawnXY("forest", 64, 16)
game.spawnXY("forest", 16, 32)
game.spawnXY("forest", 32, 32)
game.spawnXY("forest", 48, 32)
game.spawnXY("forest", 64, 32)
game.spawnXY("forest", 16, 48)
game.spawnXY("forest", 32, 48)
game.spawnXY("forest", 48, 48)
game.spawnXY("forest", 64, 48)
game.spawnXY("bronze-coin", 16, 8)
game.spawnXY("bronze-coin", 24, 8)
game.spawnXY("bronze-coin", 32, 8)
game.spawnXY("bronze-coin", 48, 8)
game.spawnXY("bronze-coin", 56, 8)
game.spawnXY("bronze-coin", 64, 8)
game.spawnXY("bronze-coin", 72, 8)
game.spawnXY("bronze-coin", 8, 16)
game.spawnXY("bronze-coin", 24, 16)
game.spawnXY("bronze-coin", 40, 16)
game.spawnXY("bronze-coin", 56, 16)
game.spawnXY("bronze-coin", 72, 16)
game.spawnXY("bronze-coin", 8, 24)
game.spawnXY("bronze-coin", 16, 24)
game.spawnXY("bronze-coin", 24, 24)
game.spawnXY("bronze-coin", 32, 24)
game.spawnXY("bronze-coin", 40, 24)
game.spawnXY("bronze-coin", 48, 24)
game.spawnXY("bronze-coin", 56, 24)
game.spawnXY("bronze-coin", 64, 24)
game.spawnXY("bronze-coin", 72, 24)
game.spawnXY("bronze-coin", 24, 32)
game.spawnXY("bronze-coin", 56, 32)
game.spawnXY("bronze-coin", 8, 40)
game.spawnXY("bronze-coin", 16, 40)
game.spawnXY("bronze-coin", 24, 40)
game.spawnXY("bronze-coin", 32, 40)
game.spawnXY("bronze-coin", 40, 40)
game.spawnXY("bronze-coin", 48, 40)
game.spawnXY("bronze-coin", 56, 40)
game.spawnXY("bronze-coin", 64, 40)
game.spawnXY("bronze-coin", 72, 40)
game.spawnXY("bronze-coin", 8, 48)
game.spawnXY("bronze-coin", 24, 48)
game.spawnXY("bronze-coin", 40, 48)
game.spawnXY("bronze-coin", 56, 48)
game.spawnXY("bronze-coin", 72, 48)
game.spawnXY("bronze-coin", 8, 56)
game.spawnXY("bronze-coin", 16, 56)
game.spawnXY("bronze-coin", 24, 56)
game.spawnXY("bronze-coin", 32, 56)
game.spawnXY("bronze-coin", 48, 56)
game.spawnXY("bronze-coin", 56, 56)
game.spawnXY("bronze-coin", 64, 56)
game.spawnXY("bronze-coin", 72, 56)
game.spawnXY("mushroom", 40, 8)
game.spawnXY("mushroom", 8, 32)
game.spawnXY("mushroom", 72, 32)
game.spawnXY("mushroom", 40, 56)
# 游戏得分。
game.score = 1000
game.addCollectGoal()
ui.track(game, "time")
ui.track(game, "score")
player = game.spawnPlayerXY("knight", 8, 8)
# 现在加快游戏速度,以简化您的关卡测试。
player.maxSpeed = 30
def onCollect(event):
player = event.target
item = event.other
# 如果商品的类型是"bronze-coin":
if item.type == "bronze-coin":
# 将游戏分数提高1。
game.score += 1
# 如果类型是"mushroom",则将分数提高5。
if item.type == "mushroom":
game.score += 5
# 在玩家的“收集”事件中分配事件处理程序。
player.on("collect", onCollect)
# 此功能会随着时间的推移而降低分数
def checkTimeScore():
# 在每个时间框架我们减少游戏得分:
game.score -= 0.5
# 如果比赛分数小于0:
if game.score < 0:
# 将游戏分数设置为0:
game.score = 0
# 主要游戏循环。
while True:
checkTimeScore()
# 赢得游戏胜利。