90 lines
1.9 KiB
Lua
90 lines
1.9 KiB
Lua
|
--------------------------------------------------------------------------------
|
||
|
-- Copyright (c) 2015 - 2016 , 蒙占志(topameng) topameng@gmail.com
|
||
|
-- All rights reserved.
|
||
|
-- Use, modification and distribution are subject to the "MIT License"
|
||
|
--------------------------------------------------------------------------------
|
||
|
local zero = Vector2.zero
|
||
|
local rawget = rawget
|
||
|
local setmetatable = setmetatable
|
||
|
|
||
|
TouchPhase =
|
||
|
{
|
||
|
Began = 0,
|
||
|
Moved = 1,
|
||
|
Stationary = 2,
|
||
|
Ended = 3,
|
||
|
Canceled = 4,
|
||
|
}
|
||
|
|
||
|
TouchBits =
|
||
|
{
|
||
|
DeltaPosition = 1,
|
||
|
Position = 2,
|
||
|
RawPosition = 4,
|
||
|
ALL = 7,
|
||
|
}
|
||
|
|
||
|
local TouchPhase = TouchPhase
|
||
|
local TouchBits = TouchBits
|
||
|
local Touch = {}
|
||
|
local get = tolua.initget(Touch)
|
||
|
|
||
|
Touch.__index = function(t,k)
|
||
|
local var = rawget(Touch, k)
|
||
|
|
||
|
if var == nil then
|
||
|
var = rawget(get, k)
|
||
|
|
||
|
if var ~= nil then
|
||
|
return var(t)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
return var
|
||
|
end
|
||
|
|
||
|
--c# 创建
|
||
|
function Touch.New(fingerId, position, rawPosition, deltaPosition, deltaTime, tapCount, phase)
|
||
|
return setmetatable({fingerId = fingerId or 0, position = position or zero, rawPosition = rawPosition or zero, deltaPosition = deltaPosition or zero, deltaTime = deltaTime or 0, tapCount = tapCount or 0, phase = phase or 0}, Touch)
|
||
|
end
|
||
|
|
||
|
function Touch:Init(fingerId, position, rawPosition, deltaPosition, deltaTime, tapCount, phase)
|
||
|
self.fingerId = fingerId
|
||
|
self.position = position
|
||
|
self.rawPosition = rawPosition
|
||
|
self.deltaPosition = deltaPosition
|
||
|
self.deltaTime = deltaTime
|
||
|
self.tapCount = tapCount
|
||
|
self.phase = phase
|
||
|
end
|
||
|
|
||
|
function Touch:Destroy()
|
||
|
self.position = nil
|
||
|
self.rawPosition = nil
|
||
|
self.deltaPosition = nil
|
||
|
end
|
||
|
|
||
|
function Touch.GetMask(...)
|
||
|
local arg = {...}
|
||
|
local value = 0
|
||
|
|
||
|
for i = 1, #arg do
|
||
|
local n = TouchBits[arg[i]] or 0
|
||
|
|
||
|
if n ~= 0 then
|
||
|
value = value + n
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if value == 0 then value = TouchBits["all"] end
|
||
|
|
||
|
return value
|
||
|
end
|
||
|
|
||
|
UnityEngine.TouchPhase = TouchPhase
|
||
|
UnityEngine.Touch = Touch
|
||
|
setmetatable(Touch, Touch)
|
||
|
return Touch
|
||
|
|
||
|
|