一.如果要让某类实例对象要连续执行某些语句(比如让每个Block实例从运行框最右边移动到最左边)

要在Block类中增加一些东西

1.先在其.cpp文件的init()函数中执行scheduleUpdate()方法。

2.然后在.h中声明一个虚拟的函数update,并在.cpp文件中定义update,当init中执行scheduleUpdate()时,会不断地调用update函数,里面的语句也不断地被执行,直到执行unscheduleUpdate()时停止调用update()函数,unscheduleUpdate()语句一般放在update函数中,当满足某个条件时就执行。

二.如果要不断地创建某个类的实例对象(比如不断地创建新的Block在最右边),可以用到嵌套的update方法

要在GameController类中增加一些东西

1.先在HelloWorld类的.cpp文件的init()函数中执行scheduleUpdate()方法。

2.然后在HelloWorld类的.h文件中声明一个虚拟的函数update,并在.cpp文件中定义update,里面的语句也不断地被执行,语句具体是去调用GameController实例中的onUpdate()函数。

void Game1::update(float dt){
  for (auto it = gcs.begin(); it != gcs.end(); it++) {
    (*it)->onUpdate();
}

3.再在GameController类的.h文件中声明一个虚拟的函数onUpdate,并在.cpp文件中定义onUpdate,里面的语句也不断地被执行,语句具体是创建一个Block类的实例对象。

4.但是不断的调用的时间间隔是每一帧,可以说太快了,如果我们希望调用的时间间隔长一点或者时间间隔是随机的,我们就要在GameController类的.h文件里面再定义两个属性,frameIndex和nextKeyFrameIndex,再声明一个函数resetTimer,这个函数用来重置当前帧和下一次调用onUpdate函数时的帧数,这个是随机的,一般情况下1秒等于60帧,所以下面那个定义意思就是2秒到4秒之间的一个时间会调用onUpdate函数

void GameController::resetTimer(){
  frameIndex = ;
  nextKeyFrameIndex = rand()%+;
} void GameController::onUpdate(){   frameIndex++;   if (frameIndex>=nextKeyFrameIndex) { //当当前帧数等于或大于随机的目的帧数时,创建Block并重置frameIndex和nextKeyFrameIndex   auto b = game::Block::create();
  _layer->addChild(b);
  b->setPositionY(_positionY+b->getContentSize().height/);   resetTimer();
  }
}

5.游戏结束的时候要把这个一直执行的update停掉,用到unscheduleUpdate(),一般是放在一些事件监听的函数中

三.如果要指定一定的时间间隔去调用某个方法用

schedule(schedule_selector(PlaneHero::beginShooting),.5f);

这里的.5f其实就等于0.5f,而且这个参数是以秒为单位的,也就是说,每格0.5秒去调用这个beginShooting方法,达到我们想要的射子弹的效果。

最新文章

  1. WPF DataGrid 行选中相关
  2. 跳转Activity两种方法
  3. go语言 类型:布尔类型
  4. 2012第二届GIS制图大赛——公开课技术问题&答疑(珍贵资源哦!)(http://blog.csdn.net/arcgis_all/article/details/8216984)
  5. [上传下载] C# ImageUpload图片上传类教程与源码下载 (转载)
  6. 支持SMTP邮箱介绍
  7. jquery完美实现textarea输入框限制字数
  8. Python操作Zip文件
  9. Software Engineering-HW3 264&249
  10. FCC JS基础算法题(5):Return Largest Numbers in Arrays(找出多个数组中的最大数)
  11. mongodb url
  12. tyvj/joyoi 2018 小猫爬山
  13. 2018牛客网暑假ACM多校训练赛(第十场)F Rikka with Line Graph 最短路 Floyd
  14. 在android下使用i2c tools
  15. Kubernetes之总体了解
  16. python 内置函数(一),低阶内置函数功能汇总
  17. numpy ndarray可用的常规函数
  18. JQUERY的给Check全选功能
  19. SQLite 3的中文读写
  20. JS禁止用F5键

热门文章

  1. Unix环境高级编程(十二)线程控制
  2. extjs fileuploadfield default value
  3. Python log() 函数
  4. Python2 unichr() 函数
  5. LaTeX多文件编译的方法总结
  6. Centos7 防火墙关闭和启用iptables防火墙
  7. SpringCloud 分布式配置
  8. 用VIM打造C语言编写器
  9. python分析apahce网站日志的例子
  10. [na]小区网络-pppoe拨号认证原理及部署(panabit来管理)