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
|
|
|
|
|