博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
背包格子的物品交换加移动的实现
阅读量:5050 次
发布时间:2019-06-12

本文共 1331 字,大约阅读时间需要 4 分钟。

 

背景嘛~ 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

嗯 就是这样

感觉讲这么多很废话,不过鉴于自己打字不累 心情好就算了~

反正硬是不懂或者有什么 简-单-的-奇思妙想不会写代码再来@我吧.

 

转载于:https://www.cnblogs.com/makegame/archive/2013/02/02/2890292.html

你可能感兴趣的文章
bzoj 5252: [2018多省省队联测]林克卡特树
查看>>
https 学习笔记三
查看>>
华为“云-管-端”:未来信息服务新架构
查看>>
基于Sentinel实现redis主从自动切换
查看>>
函数(二)
查看>>
oracle中所有存在不存在的用户都可以使用dba连接到数据库
查看>>
函数式编程思想
查看>>
java安全沙箱(二)之.class文件检验器
查看>>
Oracle学习之简单查询
查看>>
log4j配置
查看>>
linux 配置SAN存储-IPSAN
查看>>
双链表
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>
Word Break II
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
无线通讯
查看>>
Mongodb Manual阅读笔记:CH9 Sharding
查看>>