标签:清理 游戏开发 str zha end track 事件 计数 处理
(点击图片进入关卡)
让我们清理这个战场。
简介
以前,我们使用‘destroy‘方法来清除障碍物或未收集的物品。
destroy 也可以用来提高游戏的性能。
在这个关卡,食人魔正在攻击一个由弓箭手守卫的村庄。
所以几分钟后,将会有数百个失败的食人魔。
让我们通过摧毁失败的食人魔来节省内存和资源。
默认代码
# 摧毁至少50个失败的食人魔。
# 这会产生并配置一名射手。
def spawnArcher(x, y):
archer = game.spawnXY("archer", x, y)
archer.behavior = "Defends"
archer.attackDamage = 20
# 这会产生并配置一个食人魔。
def spawnMunchkin(x, y):
ogre = game.spawnXY("munchkin", x, y)
ogre.behavior = "AttacksNearest"
# 连续产生一些射手。
def spawnArcherWall():
spawnArcher(30, 12)
spawnArcher(30, 23)
spawnArcher(30, 34)
spawnArcher(30, 45)
spawnArcher(30, 56)
# 用各种随机变化产生一群食人魔。
def spawnOgreWave():
offset = game.randomInteger(-6, 6)
spawnMunchkin(80, 16 + offset)
spawnMunchkin(80, 22 + offset)
spawnMunchkin(80, 28 + offset)
spawnMunchkin(80, 34 + offset)
spawnMunchkin(80, 40 + offset)
spawnMunchkin(80, 46 + offset)
spawnMunchkin(80, 52 + offset)
def onDefeat(event):
unit = event.target
# 将game.defeated计数器增加1。
# 使用unit.destroy()来销毁它。
# 将“munchkin”的失败“defeat”事件处理程序设置为OnDefeat。
game.defeated = 0
game.spawnTime = 0
# 添加一个手动目标。
goal = game.addManualGoal("击败77个食人魔。")
ui.track(game, "defeated")
def checkSpawnTimer():
if game.time > game.spawnTime:
spawnOgreWave()
game.spawnTime += 1
def checkGoal():
# 如果game.defeated计数器大于77:
# 将目标设置为成功完成。
pass
spawnArcherWall()
while True:
checkSpawnTimer()
checkGoal()
概览
敬请期待
分裂箭 解法
# 摧毁至少50个失败的食人魔。
# 这会产生并配置一名射手。
def spawnArcher(x, y):
archer = game.spawnXY("archer", x, y)
archer.behavior = "Defends"
archer.attackDamage = 20
# 这会产生并配置一个食人魔。
def spawnMunchkin(x, y):
ogre = game.spawnXY("munchkin", x, y)
ogre.behavior = "AttacksNearest"
# 连续产生一些射手。
def spawnArcherWall():
spawnArcher(30, 12)
spawnArcher(30, 23)
spawnArcher(30, 34)
spawnArcher(30, 45)
spawnArcher(30, 56)
# 用各种随机变化产生一群食人魔。
def spawnOgreWave():
offset = game.randomInteger(-6, 6)
spawnMunchkin(80, 16 + offset)
spawnMunchkin(80, 22 + offset)
spawnMunchkin(80, 28 + offset)
spawnMunchkin(80, 34 + offset)
spawnMunchkin(80, 40 + offset)
spawnMunchkin(80, 46 + offset)
spawnMunchkin(80, 52 + offset)
def onDefeat(event):
unit = event.target
# 将game.defeated计数器增加1。
game.defeated += 1
# 使用unit.destroy()来销毁它。
unit.destroy()
# 将“munchkin”的失败“defeat”事件处理程序设置为OnDefeat。
game.defeated = 0
game.spawnTime = 0
# 添加一个手动目标。
goal = game.addManualGoal("击败77个食人魔。")
ui.track(game, "defeated")
def checkSpawnTimer():
if game.time > game.spawnTime:
spawnOgreWave()
game.spawnTime += 1
def checkGoal():
# 如果game.defeated计数器大于77:
if game.defeated >= 77:
# 将目标设置为成功完成。
game.setGoalState(goal, True)
spawnArcherWall()
while True:
checkSpawnTimer()
checkGoal()
「网易官方」极客战记(codecombat)攻略-游戏开发2-分裂箭-disintegration-arrow
标签:清理 游戏开发 str zha end track 事件 计数 处理
原文地址:https://www.cnblogs.com/codecombat/p/12838223.html