游戏开发的一些经验

本文通过一个具体的Lua脚本示例介绍了可能导致Lua排序过程中出现崩溃的原因,并探讨了Lua的快速排序算法存在的潜在问题。

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

lua排序出现崩溃的情况:

function sort(x,y)
if x.a < y.a then
return true
elseif x.a == y.a then
return (math.random(2) == 2)
end
return false
end


tbl = {{a = 4,b = 1},{a = 2,b = 2},{a = 1,b = 3},{a = 10,b = 4},{a = 1,b = 5}}


for i = 1,100 do
t = "i:" ..i.. "\n"
print(t)
table.sort(tbl,sort)
for k,v in pairs(tbl) do
print(v.a,v.b)
end
end


原因是lua的快速排序存在问题


-----------------------------------------------------------------------


•模块定义

  module( 模块名)

•模块加载

  require( 模块名)

  加载结果以table的形式加载到全局空间;

     可加载Lua文件;

     可加载编译后的Lua可加载C实现的动态链文件;




•热更新

  require会记住load过的信息,重复调用不会导致模块被重新载入,而dofile会,热更新需要使用dofile;

      数据服务分离;

      注意引用的影响,更新函数时也应更新函数对应的引用表(包含C中的引用),如果对象持有此函数的应用则会出现不能及时更新的问题;

     注意变量的书写形式,需要判定变量是否已经初始化过,以防止更新导致数据丢失(例如:count= count or 0);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值