【德州扑克开发记录】在lua层sdk接口类继承自cocos2d类的危害

之前给外包接微信、fb、gp、appstore等,lua调用的类是这么定义的:

local Platform_Appstore = class("Platform_Appstore",function()
  return display.newLayer()
end)

咋看一下是个很普通的用法,但却制造了2个非常难以调试的bug,给后来的工作带来了莫大的痛苦。

BUG1:ios真机调试,appstore支付后,乱点界面一通后,闪退,xcode报错卡在oc文件的touchbegan中。

这个bug的难点在于无法定位lua层出错的语句,只能根据oc报错确定为touch相关的报错。

原因:由于Platform_Appstore类是集成自CCObject的基类,付款的时候创建了一次,大概是由于(没有细查原因)付费完成后在某个时间点被自动回收了,造成touch混乱出错。

BUG2:外包接完sdk后,做了个Platform_Test类测试

     self:createButton("googleplay_pay",cc.p(display.cx, display.cy - 100), function()        local gp = Platform_GooglePlay.new()        gp:pay()     end)--    local gp = Platform_GooglePlay.new()--    gp:createMenu_Googleplay(self)--    gp:addTo(self)

下面被注释的为外包原来写的测试,改为上面的代码应该是一样的,但却无法调用gp了。原因:同样是由于Platform_GooglePlay集成自CCLayer,在创建了之后没有retain,于是在下一帧便被自动回收了。

解决:改成直接创建class。
local Platform_Appstore = class("Platform_Appstore")
 
时间: 2024-09-30 03:01:40

【德州扑克开发记录】在lua层sdk接口类继承自cocos2d类的危害的相关文章

【德州扑克开发记录】lua提取字符串中的中英文

local tb = {}local lenInByte = #strlocal i = 1while i < (lenInByte + 1) do local curByte = string.byte(str, i) local szType local byteCount=1 if curByte>0 and curByte<=127 then if curByte>=48 and curByte<=57 then szType = 'num' elseif (curB

【德州扑克开发记录】ios调facebook sdk时无法打开手机上装的fb客户端

之前同事说facebook后台->setting的bundle id没有关联到打包的bundle id,可是对应了之后ios依然不能挂起客户端. 调用时lua控制台输出错误:This app is not allowed to query for scheme fbauth 在以下网址找到答案http://www.jianshu.com/p/e38a609f786e 工程->ios下有个Info.plist文件,选中并在LSApplicationQueriesSchemes一栏中把fbauth

【德州扑克开发记录】用lua实现ntohs()和htons()

在网络传输过程中,需要把数值转换为网络可传输的类型(如字符串),这就需要用到ntohs和htons. htons:把一个数值转换为一个(用于网络传输的)字符串. ntohs:把一个(用于网络传输的)字符串转换为一个数值. 举例,后端要传1个包体的长度给前端,长度为6598,则会先用htons把该数字转换为字符串‘Ab’,前端收到后再用ntohs转化成数值6598. 无奈lua没有提供这样的库,只有自己写. function getHtons(nInt, nByte)--nInt数值,nByte转

【德州扑克开发记录】Mac quick-3.3模拟器接入protobuf

接入protobuf a.按照protobuf接入教程接好 b.xcode重编时找不到libsqlite3.dylib和libz.dylib库 解决方法如下: step 1 : Go to Build Phases > Link Binary with Libraries > + > Add other While in the file selection window press: "CMD"+Shift+G (i.e. Go to folder) and typ

java和h5 canvas德州扑克开发中(二)

德州扑克网页源码在github上分享 https://github.com/lxr1907/pokers 感兴趣的可以上去看下. 1.通讯使用websocket,主要在message.js中. 2.用canvas画界面的代码主要在view.js中. 3.游戏逻辑控制代码在controll.js中. 4.poker.min.js是github上的一个开源画扑克牌的js,在drawCards.js中进行了简单的封装. 5.music.js主要负责音效播放. 6.texasIndex.html是游戏的

德州扑克输赢判断-C#

首先讲一下思路吧. 德州扑克一把有7张牌,可能组成10种牌型,所以,在网络游戏中,不可能是两两比较,然后排序,最简单的做法就是对每个玩家的手牌计算一个权值,然后对最终玩家的权值进行排序即可得到最终的输赢顺序. 其实这个是我的毕业设计,在大三的时候,我曾在一位学长王总的带领下做过一个德州扑克的记录软件,那个软件比较简单,只是有记录员记录现实世界中正在进行的游戏,然后把玩家的牌,叫牌操作和游戏结果记录下来,以供将来重放时做教学使用.当时的项目并没有输赢判断的功能,而是由记录员自己输入输赢的玩家顺序.

2-Wi-Fi无线控制器开发例程(开发8266的几种方式比较{AT,Lua,SDK,其它}开发工具安装,开发固件获取,刷固件)

1-AT,Lua,SDK开发方式总结 2-安装JDK 3-从浏览器获取开发固件 4-自己动手编译固件(提供视频教程,必须的文件和匠芯编译好的bin文件),初学者不要求自己编译,先学会使用即可 5-刷入学习固件 6-如果自己想知道单片机如何嵌入的lua,可以参考这篇文章 https://www.cnblogs.com/yangfengwu/p/9315841.html  (这是我用STM32嵌入了Lua,然后实现控制LED) 下一篇 https://www.cnblogs.com/yangfeng

2015华为德州扑克入境摘要——软体project

直到6一个月2号下午12时00,华为长达一个月的德州扑克锦标赛落下帷幕也被认为是. 我们的团队一直共同拥有3民,间.一个同学(吴)负责算法设计,一个同学(宋)负责分析消息,而我负责的实现框架设计和详细的决策算法.离5报名早年1月开始,要设置环境,设计框架,任务分工,以及各个模块代码的编写.从我个人的感觉来看,整个过程能够说是一个比較艰辛的历程. 德州扑克是一种棋牌类游戏.属于一种博弈过程,起先我对这个游戏没有不论什么的了解,最多的也仅仅是在影视题材里面见过,可是详细的游戏规则并不懂.而正是在这种

2015华为德州扑克参赛总结——软件工程

直到6月2号晚上零点,为期一个月的华为德州扑克比赛也算告一段落了.我们团队总共有3人,其中,一个同学(吴晓东)负责算法的设计,一个同学(宋振兴)负责消息的解析,而我则负责整个框架的设计以及具体决策算法的实现.从5月份初报名开始,到环境的搭建,框架的设计,任务的分工,算法的设计以及各个模块代码的编写,从我个人的感觉来看,整个过程可以说是一个比较艰辛的历程. 德州扑克是一种棋牌类游戏,属于一种博弈过程,起先我对这个游戏没有任何的了解,最多的也只是在影视题材里面见过,但是具体的游戏规则并不懂.而正是在