【装备合成】添加长按自动增加数量功能

gaoxin 2021-12-30 20:32:11 +08:00
parent 00dc90f4bb
commit 613380a99f
3 changed files with 139 additions and 0 deletions

View File

@ -0,0 +1,110 @@
local LongPressEvent = {}
function LongPressEvent:ctor(go)
self.go = go
self.isTriggerPoint = false
self.triggerTime = 0
self.triggerBeatTime = 0
self.isInvoke = false
self.trigger = Util.GetEventTriggerListener(self.go.gameObject)
self.trigger.onPointerDown = self.trigger.onPointerDown + function()
self:onPointerDown()
end
self.trigger.onPointerUp = self.trigger.onPointerUp + function()
self:onPointerUp()
end
self.trigger.onPointerExit = self.trigger.onPointerExit + function()
self:onPointerUp()
end
end
function LongPressEvent:SetPressStartFunc(func)
self.onPressStart = func
end
function LongPressEvent:SetPressEndFunc(func)
self.onPressEnd = func
end
function LongPressEvent:SetPressTime(pressTime)
self.pressTime = pressTime
end
function LongPressEvent:SetPressBeatFunc(func)
self.onPressBeat = func
end
function LongPressEvent:SetPressBeatTime(beatTime)
self.beatTime = beatTime
end
function LongPressEvent:onPointerDown()
self.isTriggerPoint = true
self.triggerTime = Time.time
end
function LongPressEvent:onPointerUp()
self.isTriggerPoint = false
-- 触发过开始就触发结束
if self.isInvoke then
if self.onPressEnd then
self.onPressEnd()
end
self.isInvoke = false
end
end
function LongPressEvent:Update()
if self.isTriggerPoint then
-- 没触发过start
if not self.isInvoke then
-- 触发开始事件
if self.pressTime and Time.time - self.triggerTime > self.pressTime then
if self.onPressStart then
self.onPressStart()
end
self.isInvoke = true
--
self.triggerBeatTime = 0
end
else
-- 长按连续触发事件
if self.beatTime and Time.time - self.triggerBeatTime > self.beatTime then
if self.onPressBeat then
self.onPressBeat()
end
self.triggerBeatTime = Time.time
end
end
end
end
function LongPressEvent:Destroy()
-- 清除原来的事件
if self.trigger then
self.trigger:Destroy()
end
end
LongPressManager = {}
local list = {}
local function update()
for go, o in pairs(list) do
o:Update()
end
end
UpdateBeat:Add(update, LongPressManager)
function LongPressManager.New(go)
if list[go] then
list[go]:Destroy()
list[go] = nil
end
local o = {}
setmetatable(o, {__index = LongPressEvent})
o:ctor(go)
list[go] = o
return o
end

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3a652b12a5b40f5489e86134fa4e9e29
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -69,6 +69,21 @@ function this:BindEvent()
Util.AddClick(this.subtractBtn, function()
this.CompoundNumChange(2)
end)
-- 长按加
require("Common.LongPressManager")
local lp = LongPressManager.New(this.addBtn)
lp:SetPressTime(1)
lp:SetPressBeatFunc(function()
this.CompoundNumChange(1)
end)
lp:SetPressBeatTime(0.1)
-- 长按减
local lp = LongPressManager.New(this.subtractBtn)
lp:SetPressTime(1)
lp:SetPressBeatFunc(function()
this.CompoundNumChange(2)
end)
lp:SetPressBeatTime(0.1)
end
function this:AddListener()
@ -281,9 +296,16 @@ function this.SingleItemDataShow(_go,_itemData,curEquipStarsConfig)
end
--加减方法
function this.CompoundNumChange(type)
if type == 1 then--加
if compoundNum >= compoundMaxNum then
return
end
compoundNum = compoundNum + 1
else--减
if compoundNum <= 0 then
return
end
compoundNum = compoundNum - 1
end
--LogError("compoundNum "..compoundNum)