【游戏_忍者六道】状态机设计与应用之lua篇

本文探讨了在游戏开发中如何使用Lua实现状态机。通过一个十一活动的例子,展示了如何利用Lua的table存储状态对象,并通过定时器检查活动的开始和结束。文章还简单介绍了状态机的类图和代码结构,强调了Lua在游戏状态管理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 前言

上一篇图文描述了C++实现游戏中应用的状态机,C++中的三大特性:封装,继承,多态得以应用,封装数据引擎访问的增,删,查,改,状态机基类以及多种状态子类实现私有private或者公共public继承它,但是发挥更大的作用是多态的使用,子类继承实现基类的virtual虚函数,在不同的事件机制触发下,迁移变换执行不同的状态,虽然毫无标准顺序可言,却是按照指定规则轨道正确行使,这是状态机设计的正确使用的最妙之处,起码是当前使用是这样,不同的需求会设计出不同高效的状态机。

那么,lua在状态机方面是如何应用的呢?

众所周知,lua是游戏开发中效率颇高的脚本语言,其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。在目前所有脚本引擎中,Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。现在很多游戏(无论手游,还是端游),都为它的强大所折服,ps和魔兽都有使用lua,不得不承认,lua这方面做得确实很不错,虽然lua是面向过程和函数式编程,但是它的闭包和table特性使得它像C++一样,很完美的实现OO——面向对象。

二 状态机实现

这里简单的说下一个游戏中,lua脚本实现一个功能的场景:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼弦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值