腾讯 Bugly<是个SDK>,是腾讯公司为移动开发者开放的服务之一,面向移动开发者提供专业的 Crash 监控、崩溃分析等质量跟踪服
类似小程序数据分析的SDK阿拉丁,只不过是分析闪退,异常的
lua 中的assert 与loadstring 问题
删除元素方式:(下标变化)
tab[i] = nil
table.remove(tab, i)
--------------------------- tolua 一些可以用的函数
tolua 提供几个 C++ 与 Lua 进行数据交换的工具函数
黑科技原理:为啥require类。修改函数…<package.loaded>
常见lua报错类型https://blog.csdn.net/yuanfengyun/article/details/78001988
-------参考热更
包内资源、本地缓存资源和临时资源
在开发者的游戏安装到用户的手机上时,它的游戏是以 .ipa(iOS)或者 .apk(Android)形式存在的,这种应用包在安装后,它的内容是无法被修改或者添加的,应用包内的任何资源都会一直存在。所以热更新机制中,我们只能更新本地缓存到手机的可写目录下(应用存储空间或者 SD 卡指定目录),并通过 FileUtils 的搜索路径机制完成本地缓存对包内资源的覆盖。同时为了保障更新的可靠性,我们在更新过程中会首先将新版本资源放到一个临时文件夹中,只有当本次更新正常完成,才会替换到本地缓存文件夹内。如果中途中断更新或者更新失败,此时的失败版本都不会污染现有的本地缓存。这一步骤在上一章节的流程图中有详细介绍:
在长期多次添加链接描述更新的情况下,本地缓存会一直被替换为最新的版本,而应用包只有等到用户在应用商店中更新到新版本才会被修改。
------遮罩------------------参考文章—https://blog.csdn.net/while0/article/details/43850749(写的好)
如新手引导制作
1、原理
ClippingNode(裁剪节点)可以用来对节点进行裁剪。ClippingNode是Node的子类,可以像普通节点一样放入Layer,Scene,Node中。
主要是根据一个模板(Stencil)切割图片的节点,生成任何形状的节点显示。
ClippingNode是利用模板遮罩来完成对Node区域裁剪的技术。
------------------------------------------------------------------截屏
1 scrollview截屏如何截取缩率图 ? <把node用指定正交相机渲染>
2 截屏后为什么右边是空白的 ? <因为cocosstudio中裁剪未勾选>
3 普通截图用官方3.2版本提供的cc.utils:captureScreen与cc.RenderTexture等效
子龙山人引擎元老16-05-3
@rabeechen
你要截的屏幕中含有 ClippingNode 或者 ScrollView, ListView 等控件?
需要在创建 RenderTexture的时候指定 stencil
(var tex = new cc.RenderTexture(winSize.width, winSize.height, cc.Texture2D.PIXEL_FORMAT_RGBA8888, gl.DEPTH24_STENCIL8_OES);)
function TeamPictureScrollView:_drawTeamPicture(rect)
self._camera = cc.Camera:createOrthographic(1136, 640, 0, 1)
self._camera:setCameraFlag(cc.CameraFlag.DEFAULT)
self._scroll:addChild(self._camera)
self._scroll:setCameraMask(1)
-- self._rt = cc.RenderTexture:create(rect.width, rect.height, cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888, 0x88F0)
-- self._rt = cc.RenderTexture:create(rect.width, rect.height, cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888, gl.DEPTH24_STENCIL8_OES)
-- self._rt = cc.RenderTexture:create(rect.width, rect.height, cc.TEXTURE2_D_PIXEL_FORMAT_RGB_A8888, gl.DEPTH24_STENCIL8_OES)
self._rt = cc.RenderTexture:create(rect.width, rect.height)
self._rt:beginWithClear(0, 0, 0, 0)
self._scroll:visit()
self._rt:endToLua()
self._rt:retain()
local texture = self._rt:getSprite():getTexture()
self._spr = cc.Sprite:createWithTexture(texture)
-- self._spr:setAnchorPoint(0.5, 0.5)
self._spr:setAnchorPoint(0, 0.5)
self._spr:setFlippedY(true)
self._spr:setScale(0.3)
-- self._spr:setScale(0.24)
-- self._spr:setPosition(1136 / 2, 640 / 2)
self._spr:setPosition(0, 640 / 2)
self:_performWithDelay(function()
self._camera:removeFromParent(true)
label:removeFromParent(true)
end, 0.1)
return self._spr
end
--人物面板点击 <截图解释:为什么要判断偏移量>
function GuildDungeonMonsterNode:_onPanelClick(sender)
local offsetX = math.abs(sender:getTouchEndPosition().x - sender:getTouchBeganPosition().x)
local offsetY = math.abs(sender:getTouchEndPosition().y - sender:getTouchBeganPosition().y)
if offsetX < 20 and offsetY < 20 then
self:showStageDetail()
end
end
------------------bugly 异常处理: 定位错 死活不回
分析:不是回调函数"_onClick"空, 是temView回调函数中存在空(已走到TeamView 不在TeamHeroPageItem类)
bug:已判空why还报错 ?不会处理…求助…
bug:调用堆栈, 上层上层函数(不是当前类or上层类)
--------------------基本知识
C语言:指针传递、引用传递、 值传递(实参 形参不同内存)
lua pytho js C#:引用类型(内存在栈) 值类型(内存分配在堆)
void swap(int a, int b)
void swap(int *a, int *b)
void swap(int &a, int &b)