[Cocos2d-x开发问题-6] 定时器问题

刚接触Cocos的时候谢了这样一段Lua代码:

<span style="font-size:18px;">    cc.Director:getInstance():getScheduler():scheduleScriptFunc(createOnePairPipe,2.5,false)</span>

然后我在游戏结束的时候用了下面的代码:

<span style="font-size:18px;">    local startScene = require("scenes/StartScene")
    cc.Director:getInstance():replaceScene(startScene:create())</span>

然后就报了下面的错误:

addChild的时候报出invalid ‘cobj‘ in function ‘lua_cocos2dx_Node_addChild‘的错误

这个addChild是我卸载createOnePairPipe函数里面的,这个报错的原因是我replaceScene的时候当前scene会销毁,自然self就没了,然而scheduleScriptFunc产生的新线程(我们姑且称之为线程)仍然在执行,因此我们需要在切换场景之前将这个线程关掉,具体方法如下:

<span style="font-size:18px;">local schedulerID = cc.Director:getInstance():getScheduler():scheduleScriptFunc(schduleT, 1, false)
cc.Director:getInstance():getScheduler():unscheduleScriptEntry(schedulerID)</span>
时间: 2024-08-05 13:19:51

[Cocos2d-x开发问题-6] 定时器问题的相关文章

cocos2d 游戏开发实战

文章转自:http://uliweb.clkg.org/tutorial/read/40 6   cocos2d 游戏开发实战 6.1   创建cocos2d项目 6.2   cocos2d v3 "hello world" 6.2.1   显示一个飞船 6.3   精灵 6.4   開始 space viking 之旅 6.4.1   添加 sneakyinput 6.5   精灵的移动效果,旋转效果 6.6   定时器效果 6.7   启动 cocos2d,默认竖屏 6.8   检

[ios5 cocos2d游戏开发实战] 笔记3-FileUtils, notificationCenter

FileUtils //文件管理工具 FileUtils::getInstance() std::string getStringFromFile(const std::string& filename);//读取文件中的字符串 Data getDataFromFile(const std::string& filename);//获取文件数据 void setSearchPaths(const std::vector<std::string>& searchPaths

cocos2d 游戏开发:Cocos2d v3 &quot;hello world&quot;+显示飞船

V3 RC4 版本图片 显示一个飞船 将Chapter1中 SpaceCargoShip.png 文件 添加到项目里面. 代码在 init : CCSprite *spaceCargoShip = [CCSprite spriteWithImageNamed:@"SpaceCargoShip.png"]; [spaceCargoShip setPosition:ccp(200.0f,150.9f)]; [self addChild:spaceCargoShip]; 在上面的代码下增加如

在Android开发中,定时器一般有以下3种实现方法

在Android开发中,定时器一般有以下3种实现方法: 原文地址http://www.360doc.com/content/12/0619/13/87000_219180978.shtml 一.采用Handler与线程的sleep(long)方法二.采用Handler的postDelayed(Runnable, long)方法三.采用Handler与timer及TimerTask结合的方法 下面逐一介绍: 一.采用Handle与线程的sleep(long)方法 Handler主要用来处理接受到的

iOS开发小技巧--定时器的使用技巧

一.定时器的使用技巧 -- 定义好了定时器后,添加两个方法,一个是添加定时器的方法,另一个是移除定时器的方法. 使用的时候也要注意,一定先移除之前的timer,然后再添加timer

ESP8266 LUA脚本语言开发: 外设篇-定时器,延时,看门狗

https://nodemcu.readthedocs.io/en/master/modules/tmr/ local mytimer1 = tmr.create() function TimeFunction1() print("1S 循环定时器") end mytimer1:register(1000, 1, TimeFunction1) mytimer1:start() local mytimer2 = tmr.create() function TimeFunction2()

[ios5 cocos2d游戏开发实战] 笔记2

AnchorPoint: 锚点就是一个基准点 CCUserDefault 本地存储

[ios5 cocos2d游戏开发实战] 笔记4 socket

socket 连接 SOCKET sock_client; sock_client = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (INVALID_SOCKET == sock_client) { std::cout << "Invalid socket." << std::endl; WSACleanup(); return 0; } sockaddr_in addr_sev; addr_sev.sin_fam

【Cocos2d开发】Cocos2d下安卓环境的搭建

在进行Cocos2d游戏开发前 我们先来配置一下环境,我们先来准备一下工具,我们所需要的工具分别为: 1.Cocos2d引擎 2.JDK 3.SDK 4.NDK 5.ANT 6.ADT 1.下载Cocos2d-x引擎,目前最新版本为3.6,本教程的所有例子以3.4版本为例,下载完直接解压即可.点击下载Cocos2d引擎 2.JDK 检查自己电脑上是否已装好JDK环境 方法:打开终端,输入 java–version 如果没有安装过,点击下载JDK 效果如下: 3.ADT下载,ADT被称为安卓的集成