quick3.5的触屏bug

quick3.5的官方下载版本有巨大的bug

表现如下

测试代码1:
在MainScene:ctor() 方法末尾加入如下代码(地球人都知道这个代码有问题)

local b = nil
b.a = 1 

启动模拟器,  触摸模拟器内部, 模拟器崩溃(死在触屏里了)

解决方案:

合并 https://github.com/dualface/v3quick/commit/ac5d8b4426d87c196a51863d81e49c2780a74eb9 代码

测试代码2

在MainScene:ctor 方法中新写代码

local sp = display.newSprite("GreenButton.png"):addTo(self)
sp:setPosition(cc.p(200,200))
local touchFunc = function ( event )
      print("event.name",event.name)
      if(event.name == "began") then

      elseif(event.name == "moved") then

      elseif(event.name == "ended") then
          sp:removeFromParent(true)
      end
      return true
end
sp:addNodeEventListener(cc.NODE_TOUCH_EVENT, touchFunc)
sp:setTouchEnabled(true) 

运行模拟器 点击图片崩溃

解决方案:

修改LuaTouchEventManager.cpp  ()

加入#define SAFE_CLEAR(obj) if(s_sharedLuaTouchEventManager){(obj).clear();}

将原来的clear方法替换为SAFE_CLEAR

(具体可参见https://github.com/dualface/v3quick/  对应的文件最新的写法)

 

最后,友情提醒大家,quick自己写的触屏机制只适用于简单游戏,复杂游戏实现方式会很受限, 并且quick已经停止维护了, 建议大家在新游戏中一定采用cocos2dx_lua原生的触屏方式

 

  

原文地址:https://www.cnblogs.com/ColaZhang/p/4805181.html