铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 633|回复: 5

[MOD技巧] 分享拼图源码,兼容所有lua版金群

[复制链接]
发表于 2018-1-26 14:43 | 显示全部楼层 |阅读模式
随便发个贴子,为论坛做点什么吧........ 这是我一时冲动用lua写的拼图小样,在不同平台或不同分辨率下使用它,不必担心会出现乱七八糟的现象
代码懒得注释了,看得懂的可以研究一下,看不懂的直接拿来用即可
效果:

代码如下:
  1. --产生不重复随机数,来源网络
  2. function RandomIndex(tabNum,indexNum)
  3.         indexNum = indexNum or tabNum
  4.         local t = {}
  5.         local rt = {}
  6.         for i = 1,indexNum do
  7.                 local ri = math.random(1,tabNum + 1 - i)
  8.                 local v = ri
  9.                 for j = 1,tabNum do
  10.                         if not t[j] then
  11.                                 ri = ri - 1
  12.                                 if ri == 0 then
  13.                                         table.insert(rt,j)
  14.                                         t[j] = true
  15.                                 end
  16.                         end
  17.                 end
  18.         end
  19.         return rt
  20. end

  21. --实现拼图
  22. function puzzle()
  23.   local data={}
  24.   local numx,numy=4,4
  25.   local s = RandomIndex(15,15)
  26.   local picw, pich = lib.GetPNGXY(98, 1*2)
  27.   local num=1
  28.   local x,y=CC.ScreenW/2,CC.ScreenH/2
  29.   for i=1,numx do
  30.    data[i]={}
  31.     for j=1,numy do         
  32.           data[i][j]={s[(j-2)*numy+i+numx],x-(picw*3)+(i*picw),y-(pich*3)+(j*pich)}
  33.     end
  34.   end
  35.   data[4][4][1]=16
  36.   while num~=16 do
  37.     Cls();
  38.     DrawBox(x-(picw*2)-2,y-(pich*2)-2,x+(picw*2)+1,y+(pich*2)+1,C_WHITE);
  39.         for i=1,4 do
  40.         for j=1,4 do
  41.           num=num==data[i][j][1] and num+1 or 1
  42.       lib.LoadPNG(98, data[i][j][1]*2,data[i][j][2],data[i][j][3], 1)          
  43.         end
  44.         end
  45.     ShowScreen()
  46.     local key= lib.GetKey()
  47.     lib.Delay(CC.Frame)
  48.     if key == VK_UP and numy>1 then
  49.       numy=numy-1
  50.           data[numx][numy+1][1]=data[numx][numy][1]
  51.     elseif key == VK_DOWN and numy<4 then
  52.       numy=numy+1
  53.           data[numx][numy-1][1]=data[numx][numy][1]
  54.     elseif key == VK_LEFT and numx>1 then
  55.       numx=numx-1
  56.           data[numx+1][numy][1]=data[numx][numy][1]
  57.     elseif key == VK_RIGHT and numx<4 then
  58.       numx=numx+1
  59.           data[numx-1][numy][1]=data[numx][numy][1]
  60.     end
  61.     data[numx][numy][1]=16
  62.   end
  63. end
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?我要成为铁血侠客

x
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-1-26 14:54 | 显示全部楼层
考虑到龙人安卓版问题,没有采用直接在代码里裁剪图片,需要手动PS把图片切分16宫格小块,去掉最后一张即可
[发帖际遇]: 妖龙在古墓获得小龙女的养蜂术,转卖老顽童后获得1 银两。 幸运榜 / 衰神榜
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-1-26 17:40 | 显示全部楼层
哇,很优秀。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-1-26 17:50 | 显示全部楼层
KA 发表于 2018-1-26 17:40
哇,很优秀。

哇 黄老师竟然上线了
[发帖际遇]: 妖龙 为救乔峰,聚贤庄大战群侠后身负重伤,花费8 银两治伤。 幸运榜 / 衰神榜
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-1-26 22:46 | 显示全部楼层
怎么放呢。DIY可以吗?
[发帖际遇]: lindi2001在海边偷看杨过练功,写出黯然销魂掌秘籍,转卖获利3 银两。 幸运榜 / 衰神榜
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-1-27 08:35 | 显示全部楼层
lindi2001 发表于 2018-1-26 22:46
怎么放呢。DIY可以吗?

这个主要是供新手研究,下次会发个完整的DIY拼图
[发帖际遇]: 妖龙路遇太岳四侠拦路打劫,被对方的阵势吓住,乖乖交出10 银两保命。 幸运榜 / 衰神榜
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

关注论坛微信公众号

小黑屋|手机版|铁血丹心 ( 粤ICP备16123140号-1 )

GMT+8, 2018-10-18 09:35 , Processed in 0.178436 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.3 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表