cocos2dx 3.3 + lua 学习笔记(03)--- 触摸事件、定时器、进度条

来源:互联网 发布:hbase不直接删除数据 编辑:程序博客网 时间:2024/05/01 20:10

— 多点触摸
function MenuLayer:addTouches()
local touch1, touch2 = cc.Touch, cc.Touch
local function onTouchesBegan(touches, event)
print(“Touches Began”)
touch1 = touches[1]     — 第一个触点,下标从1开始
touch2 = touches[2]     — 第二个触点
local pos1 = touch1:getLocation()   — 获取触点1的位置
local pos2 = touch2:getLocation()   — 获取触点2的位置
local delta = {
x = pos2.x – pos1.x ,
y = pos2.y – pos1.y
}
end
 
local function onTouchesMoved(touches, event)
print(“Touches Moved”)
end
 
local function onTouchesEnded(touches, event)
print(“Touches Ended”)
end
 
— 注册多点触摸
local listener = cc.EventListenerTouchAllAtOnce:create()  --单点EventListenerTouchOneByOne():create()
listener:registerScriptHandler(onTouchesBegan, cc.Handler.EVENT_TOUCHES_BEGAN)
listener:registerScriptHandler(onTouchesMoved, cc.Handler.EVENT_TOUCHES_MOVED)

listener:registerScriptHandler(onTouchesEnded, cc.Handler.EVENT_TOUCHES_ENDED)

--获取层的事件派发器

local dispatcher = cc.Director:getInstance():getEventDispatcher()

dispatcher:addEventListenerWithSceneGraphPriority(listener, self)

end

— 定时器

--开启定时器,一般是两种方式

第一种:自定义的形式,使用之后记得关闭

schedulerID = cc.Director:getInstance():getScheduler():scheduleScriptFunc(update, 0, false)   --调用的function, 调用频率(秒), 是否暂停(true, false)
cc.Director:getInstance():getScheduler():unscheduleScriptEntry(schedulerID)  -- 取消定时器

第二种:类似c++中的 scheduleUpdate()
self:scheduleUpdateWithPriorityLua(update, 0)

self:unscheduleUpdate()   --取消定时器

调用的函数原型如下

local function update(delta)

end


— 进度条

 

    --血条  
    local bloodBody = cc.Sprite:create(bloodPic)  
    --创建进度条  
    local bloodProgress = cc.ProgressTimer:create(bloodBody)  
    bloodProgress:setType(cc.PROGRESS_TIMER_TYPE_BAR) --设置为条形 type:cc.PROGRESS_TIMER_TYPE_RADIAL  
    bloodProgress:setMidpoint(cc.p(0,0)) --设置起点为条形坐下方  
    bloodProgress:setBarChangeRate(cc.p(1,0))   --设置为水平方向  
    bloodProgress:setPercentage(100) -- 设置初始进度为0  
    bloodProgress:setPosition(cc.p(0,  0))  
    self:addChild(bloodProgress)  

0 0
原创粉丝点击