铁血丹心

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

[通用] 分享拼图源码,兼容所有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宫格小块,去掉最后一张即可
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-1-26 17:40 | 显示全部楼层
哇,很优秀。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-1-26 17:50 | 显示全部楼层
KA 发表于 2018-1-26 17:40
哇,很优秀。

哇 黄老师竟然上线了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2018-1-26 22:46 | 显示全部楼层
怎么放呢。DIY可以吗?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2018-1-27 08:35 | 显示全部楼层
lindi2001 发表于 2018-1-26 22:46
怎么放呢。DIY可以吗?

这个主要是供新手研究,下次会发个完整的DIY拼图
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2023-7-31 15:51 | 显示全部楼层
龙人DIY拼图啥时候放出来?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2023-7-31 15:51 | 显示全部楼层
妖龙 发表于 2018-1-26 14:54
考虑到龙人安卓版问题,没有采用直接在代码里裁剪图片,需要手动PS把图片切分16宫格小块,去掉最后一张即可

龙人安卓版好像没有需要拼图

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-11-21 18:03

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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