在表格中向前和向后进展
2018-12-6 1:2:57
收藏:0
阅读:109
评论:2
第一次在Stack Overflow上,但肯定在这里找到了很多有用的信息!
目前我正在尝试弄清楚如何根据当前选择在表格中选择下一个项目或上一个项目。
我的当前表格如下:
maleSkins = { 7,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,32,33,34,35,
36,37,43,44,45,46,47,48,49,51,52,57,58,59,60,61,66,67,72,73,80,82,83,
84,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,
112,113,114,115,116,117,118,120,121,122,123,124,125,126,127,128,132,
133,134,135,136,137,142,143,144,146,147,153,154,156,159,160,161,162,
168,170,173,174,175,176,177,179,180,181,182,183,184,185,186,187,188,
189,200,202,203,204,206,210,212,213,217,220,221,222,223,227,228,229,
230,234,235,236,239,240,241,242,247,248,249,250,252,254,258,259,260,261,262 }
femaleSkins = { 9,10,11,12,13,31,38,39,40,41,53,54,55,56,69,76,77,88,89,90,91,92,
93,129,130,131,138,139,140,141,145,148,151,152,157,190,191,192,193,195,
196,197,198,199,201,207,211,214,215,216,218,219,224,225,226,232,233,237,238,243,244,245,246,251,256,257 }
默认选择在maleSkins表中“7”,当他们选择“female”作为性别时,我将使用femaleSkins表。
目前我的函数调用如下:
function selSkin(button,state)
if button ~= "left" and state ~= "up" then
return
end
if source == createChar.maleButt then
femaleSkin = false
maleSkin = true
elseif source == createChar.femaleButt then
maleSkin = false
femaleSkin = true
end
if source == createChar.nextSkin then
if maleSkin == true then
newModel = table.concat(maleSkins,)
elseif femaleSkin == true then
end
elseif source == createChar.prevSkin then
if maleSkin == true then
elseif femaleSkin == true then
end
end
end
所以,在“createChar.nextSkin”和“createChar.prevSkin”中,我正在尝试根据当前皮肤在表格中进行排序,但我不确定如何继续。
我希望有人能够给我这样做的组成部分,我会自己构建其余部分!
(附注:我将使用的预定义变量)
maleSkin = true
femaleSkin = true
curSkin = 7
newModel = nil
点赞
用户4984564
首先欢迎来到 stack overflow :)
我发现一个小问题:你有两个变量来存储角色是男性还是女性。这允许有4种组合,其中2种没有意义。你可以只使用一个变量,比如说 maleSkin,当它为假时,就使用女性的皮肤。或者,你可以只用 skinType='male' 和 skinType='female' (Lua 将字符串内设为整数,因此比较速度与整数相同)
现在,除非你计划拥有数百万种以上的皮肤,否则你可以通过迭代表格来找出当前皮肤然后使用前面的那一个。
function skinOffset(skin, skinList, offset)
for i,current_skin in ipairs(skinList) do
if current_skin == skin then
return skinList[i + offset]
else
end
end
现在,要获得下一个皮肤,你可以使用 skinOffset(curSkin, maleSkins, 1),而要获得前一个皮肤,就使用 skinOffset(curSkin, femaleSkins, -1)。
2018-12-06 13:37:30
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

此外,将表格索引保存在全局变量中。 有几种方法,例如
skinIndex = 1,你的代码可以像这样:if source == createChar.nextSkin then newModel = maleSkin and maleSkins[skinIndex + 1] or femaleSkins[skinIndex + 1] elseif source == createChar.prevSkin then newModel = maleSkin and maleSkins[skinIndex - 1] or femaleSkins[skinIndex - 1] end但你必须注意
skinIndex小于 1 或大于#maleSkins/#femaleSkins。