(点击图片进入关卡)
从失败中捕获零星的改变。
简介
当一个单位被击败时,一个'失败'事件被触发:
def onDefeat(event):
unit = event.target
unit.say("You got me!")
game.setActionFor("munchkin", "defeat", onDefeat)
在这个关卡中,你会使用 “失败” 事件在被击败的单位附近产生一个“金币”。
默认代码
# “失败”事件表示一个单位被击败。
game.spawnPlayerXY("captain", 40, 35)
game.addSurviveGoal()
game.addCollectGoal(8)
def onSpawn(event):
while True:
unit = event.target
enemy = unit.findNearestEnemy()
if enemy:
unit.attack(enemy)
# 当一个单位被击败时,产生一枚金币。
def onDefeat(event):
unit = event.target
# 将x设置为unit.pos.x,再加上-5到5之间的数字
x = unit.pos.x + game.randomInteger(-5, 5)
# 将y设置为unit.pos.y,再加上一个介于-5和5之间的数字
# 在x,y生成一个“金币”
game.setActionFor("munchkin", "spawn", onSpawn)
game.setActionFor("munchkin", "defeat", onDefeat)
spawnTime = 0
while True:
if game.time > spawnTime:
x = game.randomInteger(10, 70)
y = game.randomInteger(10, 60)
game.spawnXY("munchkin", x, y)
spawnTime = game.time + game.randomInteger(1,4)
概览
使用“defeat”事件,我们可以让敌人掉落战利品!
当 munchkin 被击败时,通过在 -5 和 5 之间的 pos.x 和 pos.y 之间添加一个 randomInteger ,在失败的munchkin 的 pos 附近产生一个gold-coin。
在玩游戏时,你可能会注意到有时候 munchkins 似乎不会产生一枚硬币。 别担心 - 硬币可能刚刚在玩家之上产生,玩家立即收集硬币。
失败的痛苦 解法
# “失败”事件表示一个单位被击败。
game.spawnPlayerXY("captain", 40, 35)
game.addSurviveGoal()
game.addCollectGoal(8)
def onSpawn(event):
while True:
unit = event.target
enemy = unit.findNearestEnemy()
if enemy:
unit.attack(enemy)
# 当一个单位被击败时,产生一枚金币。
def onDefeat(event):
unit = event.target
# 将x设置为unit.pos.x,再加上-5到5之间的数字
x = unit.pos.x + game.randomInteger(-5, 5)
# 将y设置为unit.pos.y,再加上一个介于-5和5之间的数字
y = unit.pos.y + game.randomInteger(-5, 5)
# 在x,y生成一个“金币”
game.spawnXY("gold-coin", x, y)
game.setActionFor("munchkin", "spawn", onSpawn)
game.setActionFor("munchkin", "defeat", onDefeat)
spawnTime = 0
while True:
if game.time > spawnTime:
x = game.randomInteger(10, 70)
y = game.randomInteger(10, 60)
game.spawnXY("munchkin", x, y)
spawnTime = game.time + game.randomInteger(1,4)