quick-cocos2d-x endToLua 退出会卡死

问题:

在做马上赚钱时,会出现退出卡死,然后清理程序,再进入还是卡死界面的情况,百思不得其解,昨天在做push的时候,突然发现,在android里面弹出一个退出对话框,点击确定退出,这时候调用endtolua时,有时也会切入前台。PSNotificationCenter.addObserver(nil, "APP_ENTER_FOREGROUND", function()   do
something end.而且这两个操作顺序是随机的,而我们在切入前台时做了很多操作,所以导致有时候退出时,还在处理那些操作,所以界面卡死。

为什么会出现这种情况:

在android里,弹出一个对话框,会调用切入APP_ENTER_BACKGROUND,当关闭对话框,会进入前台。如果先进入前台,再退出,是没问题的,但如果先退出,再进入前台,那么这时如果前台操作里还有其他操作,那很容易就卡死了

解决办法:

延时endtolua操作,虽然延时不太靠谱,但能解决大部分问题的。

<span style="font-size:18px;">function game.exit()
    schedule.performWithDelayGlobal(function()
    --退出按钮
        CCDirector:sharedDirector():endToLua()
    end, 0.2)
end</span>

有更好的办法,请回复交流哦~

quick-cocos2d-x endToLua 退出会卡死

时间: 2024-11-08 08:08:24

quick-cocos2d-x endToLua 退出会卡死的相关文章

quick cocos2d x场景切换的生命周期函数调用学习

先上一个场景的基本模版: 1 local ModelScene = class("ModelScene", function() 2 return display.newScene("ModelScene") 3 end) 4 5 function ModelScene:ctor() 6 self.sceneName = "ModelScene" 7 -- 注册点击事件监听 8 self.layer = display.newLayer() 9

quick cocos2d x 手机(Android端)启动过程学习

简要学习下quick cocos2d x 在安卓端启动的过程. 首先需要了解一点:quick cocos2d x是依托于Android的activity和GLSurfaceView(继承自SurfaceView)的环境来显示quick层的游戏界面. (1)首先quick类的android游戏从AndroidManifest.xml文件指定的activity(假设AC)启动. (2)AC继承父类的Cocos2dxActivity. (3)调用静态初始化块,加载cocos2dx的动态库.也就是一些C

quick cocos2d-x Xcode下省去clean,让修改的脚本生效

<quick cocos2d-x Xcode下省去clean,让修改的脚本生效> 项目  target     build phases    点击build phase的空白区域 选择Editor     Add Build Phase      Add Run Script Build Phase 编写脚本: 顺序调整:(第二顺位) 这样就可以避免每次修改了lua脚本,都要手动clean,然后再run,太费时间.. quick cocos2d-x Xcode下省去clean,让修改的脚本生

quick-cocos2d-x endToLua 退出会卡住

问题: 马上赚钱,退出会出现卡住,然后清理,死界面的情况,百思不得其解,昨天在做push的时候,突然发现.在android里面弹出一个退出对话框,点击确定退出,这时候调用endtolua时,有时也会切入前台. PSNotificationCenter.addObserver(nil, "APP_ENTER_FOREGROUND", function()   do something end.并且这两个操作顺序是随机的.而我们在切入前台时做了非常多操作,所以导致有时候退出时,还在处理那些

很久没写博客了!今天来写个八方向摇杆基于quick cocos2d

首先!马上毕业了最近在找工作,还算有点时间好久没写东西了就写点东西吧! 进入主题,首先先思考算法和逻辑.把圆分为八块,每块45度.正上,正下,正左,正右会被X和Y 平分.一边一半各是22.5度.(PS:开始想用 斜率的,但是发现斜率是tan的图像,也就是无限趋近最大值和最小值的不好做判断最后就用了cos也可用sin)思考计算的过程图如下: 准备工作完了就开始,首先控制的人物有八个状态分别是:上,下,左,右,左上,左下,右上,右下的动画.不同的状态对应着不同的动画,触控点和圆心点作比较来判断是哪个

右滑退出手势及隐藏导航栏存在的风险

右滑手势 基本原理: interactivePopGestureRecognizer.enabled在正常情况下控制手势是否可用,默认是可用状态 如果重写了返回按钮, 需要设置interactivePopGestureRecognizer.delegate才能重新启动手势功能 调用时机: 改变手势设置和恢复手势设置应该在viewDidAppear: 和viewWillDisappear: 里成对调用 其他: viewWillAppear:等函数里应该调用super的对应函数. 现有问题 当在vi

【Q2D】如何导出自定义C++类给框架使用

本文基于Quick cocos2d x这个游戏框架,为了行文流畅,后面都简称Q2D 导出自定义c++类给项目使用已经有了现成的例子了 详见:http://quick.cocos.org/?p=235 我们讨论的是如何导出给框架,使得我们以后每次新建项目的时候,都能使用到这个类 咱也是新手,忙活了会,编译成功了,就把这经历写下来,给自己一个备忘. 本例中,定义的c++类名叫Updater 1:建好C++ 头文件(Updater.h),类文件(Updater.cpp),按照开头链接给出的规则,根据头

解决装系统选中的磁盘采用的是GPT分区形式

今天给服务器重装系统碰到的问题,记录一下 当时是按正常的操作:到了装系统选盘的时候是找不到盘符的,加载了raid驱动,然后顺利找到盘符,然后格式化了以前的C盘, 结果无法选中格式化后的C盘,无法下一步,提示说什么,当前是gpt分区的要什么mbr分区 然后按下面的操作就好了(我只操作到 convert mbr 就 exit 了) 按[shift+F10]调出 diskpart 命令提示符,然后依次输入diskpart (调出磁盘管理工具)list disk (列出所有盘符)select disk

quick-cocos2d 设置横屏

quick cocos2d新建项目,在xcode中 起模拟器,默认的是竖屏,我想做一个横屏的游戏,前面已经说了 选中你的项目,在General这个标签内,Deoployment info的这个分组,有一个Device Orientation 标签,内有一个Portrait的选项,选中是竖屏,取消选中是横屏 这里的横屏竖屏只是你显示的状态,而并非是你摆放游戏资源或者写代码按照坐标排布的横屏,这时候要设置Landscape Right,但是选中以后,就会直接崩溃 int main(int argc,