Cocos2d iphone 如何在cocos2d游戏中添加短暂停顿(思考时间)
我正在开发一款类似跳棋的两人iOS游戏。我正在使用cocos2d创建这个游戏 我希望玩家的移动渲染和计算机的移动渲染之间的思考时间为0.5秒,以模拟思考时间 游戏的流程由NSNotification事件控制,如下所示 玩家(计算机或人类)提交移动->棋盘添加新精灵->游戏控制器更新当前玩家并要求他们提交移动 我试着在棋盘更新结束或游戏更新开始时添加usleep(500000)。最终发生的是在棋盘更新中添加的精灵,对于人类玩家来说,只有在电脑玩家提交动作后才会出现。因此,游戏等待500毫秒,然后用两个动作更新 有没有办法强迫CCLayer在usleep之前更新它的子精灵,或者有没有更好的方法来增加这个思考时间Cocos2d iphone 如何在cocos2d游戏中添加短暂停顿(思考时间),cocos2d-iphone,sleep,Cocos2d Iphone,Sleep,我正在开发一款类似跳棋的两人iOS游戏。我正在使用cocos2d创建这个游戏 我希望玩家的移动渲染和计算机的移动渲染之间的思考时间为0.5秒,以模拟思考时间 游戏的流程由NSNotification事件控制,如下所示 玩家(计算机或人类)提交移动->棋盘添加新精灵->游戏控制器更新当前玩家并要求他们提交移动 我试着在棋盘更新结束或游戏更新开始时添加usleep(500000)。最终发生的是在棋盘更新中添加的精灵,对于人类玩家来说,只有在电脑玩家提交动作后才会出现。因此,游戏等待500毫秒,然后用
谢谢如果您计划在控制器中接收更新,您可以在更新:(ccTime)dt功能中滑动时间 在你的
float _slipTime;
在你的房间里
// with other declaratives
static float THINK_TIME=.5f;
// last line before the stall
_slipTime=0.f;
[self schedule:@selector(pauseForThink:)];
-(void) pauseForThink:(ccTime) dt {
_slipTime+=dt;
if(_slipTime>THINK_TIME) {
[self unschedule:@selector(pauseForThink:)];
// trigger here whatever you wanted to accomplish after
// the think pause.
}
}
好的,这很简单,但是可以防止主循环被阻塞(这就是睡眠的情况)。当以60 FPS的速度运行时,pauseForThink方法将被调用大约30次,cocos在暂停期间将有30个绘图周期