合成小游戏核心源码

[复制链接]
查看4274 | 回复15 | 2021-8-19 17:34:50 | 显示全部楼层 |阅读模式
主要思路:动态获取物品色特征值,再合成.

下面是合成函数:
  1. --启始坐标X Y 方块宽度 高度  行数 列数 色点表
  2. function 通用合成(x1,y1,w,h,c,l,t)
  3.         local monsterinfo={
  4.         }
  5.         local  monsterlist={
  6.         }
  7.         for i=1,c do
  8.                 if #monsterlist>1        then
  9.                         break
  10.                 end
  11.                 for j=1,l do
  12.                         lr.KeepScreen()        --截屏
  13.                         if #monsterlist>1        then
  14.                                 break
  15.                         end
  16.                         for k=1,#t do
  17.                                 t[k][2]=x1+w*(j-1)
  18.                                 t[k][3]=y1+h*(i-1)
  19.                                 t[k][4]=x1+w*j
  20.                                 t[k][5]=y1+h*i
  21.                         end
  22.                        
  23.                         if lr.Find(t)        then
  24.                                 monsterinfo={}
  25.                                 monsterinfo.x=lr.fx
  26.                                 monsterinfo.y=lr.fy
  27.                                 table.insert(monsterlist,monsterinfo)
  28.                         end
  29.                 end
  30.         en
  31.         if #monsterlist>1        then
  32.                 print("合成-->"..monsterlist[1].x.."-"..monsterlist[1].y.."   "..monsterlist[2].x.."-"..monsterlist[2].y)
  33.                 --lr.Swipe(monsterlist[1].x,monsterlist[1].y,monsterlist[2].x,monsterlist[2].y,1,1000) --滑动
  34.                 swipe(monsterlist[1].x,monsterlist[1].y,monsterlist[2].x,monsterlist[2].y,500)
  35.                 sleep(500)
  36.                 return true
  37.         end
  38.         return false
  39. end


  40. --启始坐标X Y 方块宽度 高度  行数 列数
  41. --ignoreColor 空格色 注意必须有8个参数 色偏值如:1.0 {"背景色",1.0,0,0,0,0,"634531-050505","-17|-1|634531-050505|-19|-19|634531-050505"}
  42. --[rule]:方格取色的偏移量 默认:{{0,0},{1,1},{-1,1},{1,-1},{-1,-1}}
  43. function 通用合成EX(x1,y1,w,h,c,l,ignoreColor,rule)
  44.        
  45.         if rule == nil then
  46.                 rule={{0,0},{1,1},{-1,1},{1,-1},{-1,-1}}
  47.         end
  48.         --动态存储色值
  49.         local colorTemp={}
  50.         local colorList={}
  51.        
  52.         local centerPointX=0
  53.         local centerPointY=0
  54.         local currentColor=""
  55.        
  56.        
  57.         --获取色特征
  58.         local tx1,ty1,tx2,ty2
  59.         for i=1,c do
  60.                 for j=1,l do
  61.                         tx1=x1+w*(j-1)
  62.                         ty1=y1+h*(i-1)
  63.                         tx2=x1+w*j
  64.                         ty2=y1+h*i
  65.                         centerPointX=tx1+(tx2-tx1)/2
  66.                         centerPointY=ty1+(ty2-ty1)/2
  67.                        
  68.                        
  69.                         local isEqual=false
  70.                         if ignoreColor~=nil and  #ignoreColor>0 then
  71.                                 for k=1,#ignoreColor do
  72.                                         if #ignoreColor[k]<6 then
  73.                                                 print("传入的参数长度有问题:"..#ignoreColor[k])
  74.                                                 return false
  75.                                         end
  76.                                         ignoreColor[k][3]=tx1
  77.                                         ignoreColor[k][4]=ty1
  78.                                         ignoreColor[k][5]=tx2
  79.                                         ignoreColor[k][6]=ty2
  80.                                 end
  81.                                
  82.                                 if lr.Find(ignoreColor) then
  83.                                         isEqual=true
  84.                                         print("格子"..i..","..j.."为空格子..")
  85.                                         -- print(ignoreColor)
  86.                                 end
  87.                         end
  88.                        
  89.                         if not isEqual then
  90.                                 colorTemp={}
  91.                                 --colorTemp[1]=centerPointX.."-"..centerPointY
  92.                                 colorTemp[1]=i..","..j..","..centerPointX..","..centerPointY
  93.                                 colorTemp[2]=0
  94.                                 colorTemp[3]=0
  95.                                 colorTemp[4]=768
  96.                                 colorTemp[5]=1280
  97.                                 --print(colorTemp[1])
  98.                                
  99.                                 for r=1,#rule do
  100.                                         currentColor=colorToStringRGB(getPixelColor(centerPointX+rule[r][1],centerPointY+rule[r][2])).."-101010"
  101.                                         if r==1 then
  102.                                                 colorTemp[6]=currentColor
  103.                                                 colorTemp[7]=""
  104.                                         elseif r==#rule then
  105.                                                 colorTemp[7]=colorTemp[7]..rule[r][1].."|"..rule[r][2].."|"..currentColor
  106.                                         else
  107.                                                 colorTemp[7]=colorTemp[7]..rule[r][1].."|"..rule[r][2].."|"..currentColor.."|"
  108.                                         end
  109.                                        
  110.                                 end
  111.                                 table.insert(colorList,colorTemp)
  112.                         end
  113.                        
  114.                 end
  115.                
  116.         end
  117.         for e=1,#colorList do
  118.                 --print(colorList[e])
  119.                 if 通用合成(x1,y1,w,h,c,l,{colorList[e]}) then
  120.                         return true
  121.                 end
  122.         end
  123.         return false
  124. end
复制代码


调用实例:
require "lr"

test={
背景色={
{"背景色",1.0,362,788,531,968,"082841-101010","-14|1|082841-101010|-15|-13|082841-101010|-11|-26|082841-101010|18|-36|082841-101010|38|-17|082841-101010|30|23|082841-101010|14|41|082841-101010|-15|42|082841-101010|-42|15|0C3251-101010|48|10|0C3251-101010|50|-27|0C3251-101010|36|-47|0C3251-101010|9|-55|0C3251-101010"}
}
}
通用合成EX(17,594,170,180,3,4,test.背景色,{{0,0},{1,16},{1,32},{1,38},{-13,38},{-24,38},{-24,17},{-24,-31},{-3,-37},{13,-37},{20,-23},{20,-10},{20,10},{19,30},{12,24},{-2,19}})


---------------------------------------
通用合成 :合成固定物品
通用合成EX:无需设置合成物品的色表,动态获取  其中 背景色:是没有物品的空格子

必须加载  lr.lua  懒人英文插件. 官群里自己下架.


上面例子效率一般..但能使用.


回复

使用道具 举报

lr666 | 2021-8-19 19:16:40 | 显示全部楼层
收藏先
回复

使用道具 举报

ycfyzjl | 2021-8-20 00:47:25 | 显示全部楼层
请教这些代码是如何上传的?
回复

使用道具 举报

风雷 | 2021-8-20 09:15:37 | 显示全部楼层
ycfyzjl 发表于 2021-8-20 00:47
请教这些代码是如何上传的?

发帖的时候..  有 <>  这个标识,,点开复制进去就好
回复

使用道具 举报

Aitlo | 2021-8-20 11:27:59 | 显示全部楼层
好家伙~收藏学起来
回复

使用道具 举报

xywl | 2021-8-20 13:05:15 | 显示全部楼层
收藏起来
回复

使用道具 举报

152324093 | 2021-8-20 14:59:04 | 显示全部楼层
好家伙。。。真棒
回复

使用道具 举报

ca0111 | 2021-8-21 10:34:46 | 显示全部楼层
请问大佬这些代码都是基于懒人写的吗  
回复

使用道具 举报

niheibie | 2021-8-21 15:05:42 | 显示全部楼层
回复

使用道具 举报

N206735803 | 2021-8-21 16:58:31 | 显示全部楼层
收藏先了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则