• 网络游戏剧情副本的一种实现方式(上)


        在网络游戏中,常常出现一种剧情副本的情况。比如玩家进入游戏后,提示“少侠,欢迎来到新手村,最近野猪一直在骚扰村子,你去打几只吧”。然后镜头移向野猪,野猪做出暴怒的表情。玩家走过去杀死野猪后,将玩家传至主城。

       这个剧情比较简单,实际情况可能要比这复杂的多。在程序中,如何做统一处理呢?

       先写一下大体思路

       我们采用配置的方法,简单来说,前台是基于事件组的节点,后台是调用场景的lua脚本内的函数与前台交互。

        后台向前台发送groupID(事件组ID),前台播放本组内的所有事件。事件内包含属性(即参数)。如果向下执行带有条件判断,比如杀某怪后发生某对话,则后台在判断玩家杀怪数后正确后,会向前台发移到某新group的消息,前台继续执行新的事件组。

       根据“对添加开放,对修改关闭”的原则,我们将前台的每个事件处理类分到不同的类处理,并继承同一个父类。

       后台使用lua写各种的处理函数,如杀怪。当杀怪后,C++将调用lua文件内的函数,函数内部判断如果杀的怪ID是某特定ID,则lua调用C++代码里的发送下个group的消息。前台收到后,则继续执行。

  • 相关阅读:
    bzoj 3747: [POI2015]Kinoman
    bzoj 3123: [Sdoi2013]森林
    bzoj 1901: Zju2112 Dynamic Rankings
    poj 1741 Tree
    bzoj 2152: 聪聪可可
    bzoj 2599: [IOI2011]Race
    bzoj 3697: 采药人的路径
    bzoj 2728: [HNOI2012]与非
    bzoj 2115: [Wc2011] Xor
    bzoj 3143: [Hnoi2013]游走
  • 原文地址:https://www.cnblogs.com/fox7nights/p/2644337.html
Copyright © 2020-2023  润新知