摘要: 不想无限使用,直接破解到正版: 输入邮箱 名字之后 还有licence信息之后,处理函数是: this.text.getText() 很明显是你输入的licence. 然后交给父类okPress处理了. licence字符串存放的变量是 this.r. 获取这个变量的方法是 am() 查看调用lic 阅读全文
posted @ 2019-07-28 23:02 Please Call me 小强 阅读(9741) 评论(2) 推荐(4) 编辑

一、硬件输入(touch, mouse, accelerometer, keyboard): 

1. 触摸屏: 触摸事件(触摸开始,触摸移动, 触摸结束,触摸取消, 点击(cocos组合计算生成))

2. 键盘按键:(键按下, 键弹起)

3. 鼠标:(鼠标按下,鼠标移动, 鼠标弹起, 鼠标滚轮)

4.重力感应: 有几组组数据(acceleration, accelerationIncludingGravity, rotationRate, interval)

const __handleEventNames = {
    touch: ['touchstart', 'touchmove', 'touchend', 'touchcancel'],
    mouse: ['mousedown', 'mousemove', 'mouseup', 'mousewheel'],
    keyboard: ['keydown', 'keyup', 'keypress'],
    devicemotion: ['devicemotion']
}

二,IOS平台层:

CCEAGLView继承了UIVIew,

分别实现了触摸代理:touchesBegan,touchesMoved, touchesEnded, touchesCancelled.

它们都将原始触摸点,转换为cocos2d::TouchEvent对象,然后调用cocos2d::EventDispatcher::dispatchTouchEvent方法派发事件

dispatchTouchEvent调用了js里的访问方法:

说明:这个tagert是cocos伪造的HTMLCanvasElement对象,其实是window.__canvas,  这个实现是为了和web版本事件逻辑一致

CCInputManager.js 实现了最原始的事件的注册,不管是web版本还是原生,可以认为这个就是输入事件的入口

直接对象:cc.internal.inputManager

 三, android平台层:

Cocos2dxRenderer继承了GLSurfaceView.Renderer
实现了:

 这些方法是c++实现的, 具体绑定在jniImp:

 

最终将原始触摸点,转换为touchEvent对象, 然后调用了cocos2d::EventDispatcher::dispatchTouchEvent

后续的逻辑和上面iOS分析的一样

四、web, H5平台层:

注册事件流程:

main.js -> cc.game.run -> _initEngine() ->_initEvents():

说明: 这个canvas是dom元素GameCanvas,和原生层传递的canvas不一样(原生层是伪造的,伪造类在jsb-builtin.js中实现)

 触发流程:

浏览器实现了touchstart, touchmove, touchend, touchcancel,点击时会自动调用对应的事件:

 五、CCEventManager.js

对象: cc.internal.eventManager

 

六,总结

无关平台,对业务层来说, 任何触摸事件,点击事件回调路径的root调用时eventManager._dispatchTouchEvent

所以,理论上某个点击没有任何反应,只需要从它开始调试就行,

还有就是一旦真有问题, 应该是所有平台都有问题。 因为不同平台没有啥逻辑,紧紧只是对象转换以及跨语言调用!

posted @ 2025-03-05 14:43 Please Call me 小强 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 声明:本人在单台机器上部署的mongo机器, mongo版本为8.0, 这玩意居然部署了一天,终于搞好了, 希望对后面想要部署的人有帮助 先创建一个mongodb目录, 后续的配置,数据都存放在这个目录中: 1. 创建mongo-secrets目录,mkdir mongo-secrets 2. 创建 阅读全文
posted @ 2025-02-24 00:55 Please Call me 小强 阅读(16) 评论(0) 推荐(0) 编辑
摘要: engine/cocos2d/core/assets/CCTexture2D.js 阅读全文
posted @ 2025-02-17 14:29 Please Call me 小强 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 连续型凯利公式是相对初始资金固定来说的, 后续计算都是基于这个初始固定资金来说。 实际投资中, 我们本身的投资资产是固定增长的, 每个月都有收入, 如果新增的收入再次想投资,原来的凯利公式就不适用了。 f* = μ/σ² * (1/(1 + C/Wt)) C是每次新增的固定金额, Wt是投资时,当前 阅读全文
posted @ 2025-02-07 11:21 Please Call me 小强 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 最近想看某个网站的逻辑, 用了混淆和反调试, 各种阻碍, 不得不想办法绕过它: function _0x1b1e27(_0x5d8113) { function _0x44deab(_0xb1966e) { var _0x51479f = _0x5611; if (typeof _0xb1966e 阅读全文
posted @ 2025-01-10 17:28 Please Call me 小强 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 网上有2.x的破解教程, 这里我就不写了。 1. 破解版本的app目录放到Resource目录, 删除app.asar 2. 将Resource目录整个拷贝到Debian或者Ubuntu 3. 安装electron,11.x 版本 4. 这个中间其实会遇到各种库找不到,找不到哪个库就全局搜索某个库, 阅读全文
posted @ 2024-12-29 01:13 Please Call me 小强 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 在 Chrome 开发者工具的网络(Network)选项卡中,你可以使用多种过滤条件来筛选网络请求。以下是一些常用的过滤条件: domain: 过滤特定域名的请求,例如 domain:example.com。 method: 过滤特定 HTTP 方法的请求,例如 method:GET。 status 阅读全文
posted @ 2024-12-13 09:46 Please Call me 小强 阅读(80) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <sys/stat.h> #include <pthread.h> #include <unistd.h> #include <string.h> #include 阅读全文
posted @ 2024-11-28 23:48 Please Call me 小强 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 最近将creator2.4.5 发布web版本, 需要将所有的图片转astc, 但是不能无脑转, 需求去除预乘alpha的图片。 也就是 { "__type__": "cc.Texture2D", "content": "0,9729,9729,33071,33071,1,0,1" } 这个cont 阅读全文
posted @ 2024-11-11 13:38 Please Call me 小强 阅读(8) 评论(0) 推荐(0) 编辑
摘要: #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH LANG=en_US.UTF-8 INSTALL_LOGFILE="/tmp/btpanel-install 阅读全文
posted @ 2024-11-04 09:52 Please Call me 小强 阅读(101) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示