码迷,mamicode.com
首页 > 其他好文 > 详细

「网易官方」极客战记(codecombat)攻略-游戏开发2-分裂箭-disintegration-arrow

时间:2020-05-06 20:13:25      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:清理   游戏开发   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()
 

本攻略发于极客战记官方教学栏目,原文地址为:

https://codecombat.163.com/news/jikezhanji-fenliejian

极客战记——学编程,用玩的!

「网易官方」极客战记(codecombat)攻略-游戏开发2-分裂箭-disintegration-arrow

标签:清理   游戏开发   str   zha   end   track   事件   计数   处理   

原文地址:https://www.cnblogs.com/codecombat/p/12838223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!