发帖
充值
 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
首页源码分享合成小游戏核心源码

合成小游戏核心源码

15
回复
6568
查看
[ 复制链接 ]

7

主题

49

回帖

398

积分

版主

积分
398
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  懒人英文插件. 官群里自己下架.


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


使用道具
举报

0

主题

8

回帖

22

积分

新手上路

积分
22
收藏先
回复
使用道具
举报

27

主题

27

回帖

678

积分

高级会员

积分
678
请教这些代码是如何上传的?
回复
使用道具
举报

7

主题

49

回帖

398

积分

版主

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

发帖的时候..  有 <>  这个标识,,点开复制进去就好
回复
使用道具
举报
已绑定手机

46

主题

118

回帖

2831

积分

版主

积分
2831
好家伙~收藏学起来
回复
使用道具
举报
已绑定手机

3

主题

40

回帖

3454

积分

论坛元老

积分
3454
收藏起来
回复
使用道具
举报
已绑定手机
已实名认证

29

主题

102

回帖

960

积分

版主

积分
960
好家伙。。。真棒
回复
使用道具
举报

13

主题

28

回帖

1552

积分

金牌会员

积分
1552
请问大佬这些代码都是基于懒人写的吗  
回复
使用道具
举报

1

主题

12

回帖

67

积分

注册会员

积分
67
回复
使用道具
举报
已绑定手机

0

主题

9

回帖

47

积分

新手上路

积分
47
收藏先了
回复
使用道具
举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则