标签:duty codecombat enemy munchkin soldier attack 士兵 战记 soldierLogic
有人忘了保卫要塞! 添加一名士兵并对他们进行编程以捍卫要塞!
简介
使用事件处理函数给士兵指令!
def soldierLogic(): while True: enemy = soldier.findNearestEnemy() if enemy: soldier.attack(enemy) soldier = hero.spawnXY("soldier", 42, 48) soldier.on("spawn", soldierLogic)默认代码
# 添加一名士兵到该关卡,以防止食人魔穿过道路。 # 使用事件处理函数命令士兵。 def soldierLogic(): # 在这里填写士兵行动的代码。 # 记得用'soldier'代替'hero'! while True: enemy = soldier.findNearestEnemy() # 如果敌人存在,则攻击敌人。 if enemy: # 单位有attack()方法。 # 你用士兵攻击(敌人)的方法:pass # 否则,请回到起始位置。 else: # 单位有moveXY()方法。
pass # 这将生成的单位分配给士兵变量。 soldier = game.spawnXY("soldier", 42, 48) # 这就是说,当士兵生成时,就可以执行士兵逻辑功能。 soldier.on("spawn", soldierLogic)
概览
在游戏开发层面,编程士兵就像编程一个宠物。
您可以使用 on(eventName,eventHandlerFunction) 函数将自定义行为分配给单位。
eventName 参数是一个用于触发 eventHandlerFunction 执行的特定事件的字符串。
"spawn" 只会在一个单位产生时发生一次。
eventHandlerFunction 参数是你定义的一个函数。 你可以把任何代码放在你想要的地方! 毕竟你是游戏开发者。
作为一个例子,考虑这个设置:
def munchkinLogic(): while True: enemy = munchkin.findNearestEnemy() if enemy: munchkin.attack(enemy) munchkin = game.spawnXY("munchkin", 20, 20); munchkin.on("spawn", munchkinLogic)考虑上面的代码的作用!
- 它定义了决定食人魔矮人行为逻辑的函数。
- 该逻辑表示,在看到敌人时攻击最近的敌人。
- 它会创建一个矮人,并将其存储在变量中。
- 最后,设置动作给矮人的生成触发器。
在深入研究下一个问题之前,阅读代码以了解它所做的事情总是有帮助的。
守卫的职责 解法
# 添加一名士兵到该关卡,以防止食人魔穿过道路。 # 使用事件处理函数命令士兵。 def soldierLogic(): # 在这里填写士兵行动的代码。 # 记得用'soldier'代替'hero'! while True: enemy = soldier.findNearestEnemy() # 如果敌人存在,则攻击敌人。 if enemy: # 单位有attack()方法。 # 你用士兵攻击(敌人)的方法: soldier.attack(enemy) # 否则,请回到起始位置。 else: # 单位有moveXY()方法。 soldier.moveXY(42, 48) # 这将生成的单位分配给士兵变量。 soldier = game.spawnXY("soldier", 42, 48) # 这就是说,当士兵生成时,就可以执行士兵逻辑功能。 soldier.on("spawn", soldierLogic) 本攻略发于极客战记官方教学栏目,原文地址为: https://codecombat.163.com/news/jikezhanji-shouweidezhize 极客战记——学编程,用玩的!标签:duty,codecombat,enemy,munchkin,soldier,attack,士兵,战记,soldierLogic 来源: https://www.cnblogs.com/codecombat/p/12718407.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。