当前位置:   article > 正文

中文编程入门(Lua5.4.6中文版)第十二章 Lua 协程 参考《愿神》游戏

中文编程入门(Lua5.4.6中文版)第十二章 Lua 协程 参考《愿神》游戏

在《愿神》的提瓦特大陆上,每一位冒险者都拥有自己的独特力量——“神之眼”,他们借助元素之力探索广袤的世界,解决谜题,战胜敌人。而在提瓦特的科技树中,存在着一项名为“协同程序”的高级秘术,它使冒险者能够以一种独特的方式调度和管理自己的行动序列,就如同操控着多位英勇的元素使者,共同完成复杂的任务。

协同程序:元素使者的并肩作战

协同程序,犹如一群元素使者,各自携带独特的元素能量(堆栈)、战术手册(局部变量)以及任务指引(指令指针)。虽然他们各自独立行动,但与同阵营的其他使者共享珍贵的战略情报(全局变量)和其他关键资源。这种作战方式赋予了冒险者极高的战术灵活性,但也需要他们具备高超的策略规划能力。

元素使者与协同程序:并肩作战与交替出击

在提瓦特的战场上,元素使者之间的协作与协同程序的运作有异曲同工之妙。当众多元素使者并肩作战时,他们能同时施展各自的元素技艺,形成壮观的元素共鸣;而协同程序中的元素使者则如同执行精密编排的舞蹈,按照预定的节奏交替释放力量,只有在主动“隐匿”后,才会让位于下一位待命的使者。

提瓦特秘技:操控协同程序

为了在《愿神》中施展协同程序的力量,冒险者需要掌握以下几项核心秘技:

coroutine.create():通过古老的仪式,召唤一名新的元素使者,注入其灵魂的是一套详尽的战斗指令(函数)。当与“唤灵法阵”(`resume`)结合使用时,使者便会被激活,开始执行任务。

coroutine.resume():启动唤灵法阵,唤醒沉睡的元素使者,使其重新投入战斗。

coroutine.yield():元素使者主动触发“隐匿术”,暂时撤出战场,待到再次被唤灵法阵召回时,继续未完成的任务。

coroutine.status():通过占卜石板(`status`)洞察元素使者的当前状况,可能的状态包括“消亡”(dead)、“潜伏”(suspend)或“激战”(running)。

coroutine.wrap():与`create`仪式相似,召唤元素使者并赋予其即刻响应召唤的能力,只需轻轻一触,使者立即响应召唤。

coroutine.running():借助神秘罗盘(`running`),揭示当前活跃在战场上的元素使者的确切标识(线程号)。

实战演练:协同程序秘术演练

以下是一段在提瓦特大陆上演绎协同程序秘术的实战剧本:

  1. -- 元素使者登场
  2. 局部 co = 协程.创建(函数(i)
  3. 输出("元素使者", i, "降临战场")
  4. 结束)
  5. -- 唤醒元素使者
  6. 协程.恢复(co, 1)
  7. -- 探查使者状态
  8. 输出("元素使者状态:", 协程.状态(co))
  9. -- 元素使者以新仪式降临
  10. 局部 co = 协程.程包(函数(i)
  11. 输出("元素使者", i, "以崭新姿态现世")
  12. 结束)
  13. -- 施展新仪式
  14. co(1)
  15. -- 元素使者历练之旅
  16. 局部 co2 = 协程.创建(函数()
  17. 因为 i = 1, 10
  18. 输出("元素使者历练", i)
  19. 如果 i == 3
  20. 输出("元素使者状态:", 协程.状态(co2))
  21. 输出("元素使者标识:", 协程.程名())
  22. 结束
  23. 协程.挂起()
  24. 结束
  25. 结束)
  26. 协程.恢复(co2) -- 历练1
  27. 协程.恢复(co2) -- 历练2
  28. 协程.恢复(co2) -- 历练3
  29. 输出("元素使者状态:", 协程.状态(co2))
  30. 输出("元素使者标识:", 协程.程名())

协同程序元素使者的历练历程

执行这段剧本后,你将见证如下壮丽场景:

元素使者        1       降临战场
元素使者状态:   废弃dead
元素使者        1       以崭新姿态现世
元素使者历练    1
元素使者历练    2
元素使者历练    3
元素使者状态:   废弃dead
元素使者标识:   thread: 0000000000f66028        true

【协同程序的深层奥秘】

协同程序的核心在于“唤灵法阵”(`resume`)与“隐匿术”(`yield`)的默契配合。唤灵法阵如同唤醒沉睡使者的咒语,令其继续未竟的使命;而隐匿术则如同使者主动退场,静候下一次召唤。这种机制使得元素使者能在关键时刻暂停与恢复战斗,为应对提瓦特大陆上复杂多变的挑战提供了战术上的无限可能。

【元素采集-炼金:协同程序的实战应用】

在《愿神》中,冒险者可以利用协同程序解决现实世界中的“生产者-消费者”问题,如元素采集与炼金过程。想象一位持续提炼元素精华的炼金大师(生产者)与一位负责收集精华的冒险家(消费者),他们的合作过程如下:

  1. 局部 新炼金师
  2. 函数 炼金师()
  3. 局部 i = 0
  4. 当 真 做
  5. i = i + 1
  6. 将元素精华交给冒险家(i) -- 将元素精华交给冒险家
  7. 结束
  8. 结束
  9. 函数 冒险家()
  10. 当 真 做
  11. 局部 i = 从炼金师那里接收元素精华() -- 从炼金师那里接收元素精华
  12. 输出("冒险家收到元素精华", i)
  13. 结束
  14. 结束
  15. 函数 从炼金师那里接收元素精华()
  16. 局部 状态, 元素精华 = 协程.恢复(新炼金师)
  17. 返回 元素精华
  18. 结束
  19. 函数 将元素精华交给冒险家(x)
  20. 协程.挂起(x) -- 交付元素精华x后,炼金师稍事休息
  21. 结束
  22. -- 启动元素交换仪式
  23. 新炼金师 = 协程.创建(炼金师)
  24. 冒险家()
  25. --记得按Ctrl+C退出程序

执行这段剧本,你会发现冒险家不断地从炼金大师那里获取宝贵的元素精华,他们的合作如同精心编排的舞蹈,展现了协同程序在《愿神》世界中解决特定任务时的无尽潜力。

至此,你已领略了《愿神》中“协同程序”这一高级秘术的神奇魅力。深入探索并熟练运用,你将能够指挥元素使者,从容应对提瓦特大陆上的一切挑战。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/502677
推荐阅读
相关标签
  

闽ICP备14008679号