背景嘛~ QQ群有人提起,自己又刚好需要一个,于是写下了这篇.
--main.luarequire "MAIN_BOX"--最好把背包格子写成类------------------------------MAIN_BOX.luabox={}--初始化格子的数据 总共6*4格for n=1,6 do for i=1,4 do box[n][m]={ id=0 --物品id boxline=70, --我用的是边长为70xp的正方形格子 light=false --高亮边框 endend-- boxin是一个放入的函数function boxin(id)local full=true for n=1,6 do for i=1,4 do if(box[n][m].id==0)then box[n][m].id=id full=false end end endif(full)then--满了给出的代码endend--放入物品boxin(1)boxin(2)
然后问题就是QQ群有人问:"怎么实现交换物品啊?"首先写个物品的"操纵杆",什么意思?就是光标(或鼠标)选择物品时 记录选择的物品数据的那个东西.
ub={}--物品的"操纵杆"useboxif(首先要光标确定,或鼠标点击后是否在包裹区域内) and(这里检测光标的位置,或判断鼠标在包裹区域内的位置)thenlocal x,y = 这里返回光标取整后的位置,或鼠标取整后的位置ub.out=box[x],box[x],box[x][y].id --电脑知道你选的什么了box[x][y].light=true --选定的物品高亮--[[如果是鼠标操作则可以加上个缓存用来在鼠标位置显示正在移动的物品并且可以让被移动的物品图片隐藏显示]]
--光标确定的瞬间,或鼠标松开左键的瞬间 实现物品交换或放置if(......)then-- newX,newY表示新位置 ub.ID=newX,newY,box[newX][newY].id --拿到物品的ID box[newX][newY].id=ub.id --新旧交替 box[ub.x][ub.y].id=ub.ID --如果新的是空的 那么相当于移动位置 ub.x,ub.y,ub.id=newX,newY,ub.ID --选择的格子发生变化--还有一些光标位置的改变啊--高亮边框什么的东东我就不写了.........end
嗯 就是这样
感觉讲这么多很废话,不过鉴于自己打字不累 心情好就算了~反正硬是不懂或者有什么 简-单-的-奇思妙想不会写代码再来@我吧.