zoukankan      html  css  js  c++  java
  • Cocos2d-x学习笔记(六) 定时器Schedule的简单应用

    

    Cocos2d-x中的定时器使用非常easy,共同拥有3种:schedulescheduleUpdatescheduleOnce。简介一下三种的差别:

    schedule,每隔指定时间运行某个自己定义的函数

    schedule(schedule_selector(自己定义函数名),间隔时间);

    scheduleUpdate,每帧运行一次Update函数(仅仅能是以Update命名的函数,须要调用其它函数则使用schedule

    scheduleOnce,在指定时间后运行某个自己定义函数,且仅仅会运行一次

    scheduleOnce(schedule_selector(自己定义函数名),间隔时间);

    今天将会学习schedule的使用方法,这个学会了其它两种就非常easy了。首先来个简单的样例,显示当前系统时间,并使用schedule刷新当前时间。


    	//label
    	pLabel = CCLabelTTF::create(CCString::createWithFormat("%d:%d:%d", now->tm_hour, now->tm_min, now->tm_sec)->getCString(), "Thonburi", 34);
    	CCSize s = CCDirector::sharedDirector()->getWinSize();
    	pLabel->setPosition(ccp(s.width / 2, s.height / 2));
    	addChild(pLabel);
    	schedule(schedule_selector(Schedule::showTimebyLabel), 1.0f);

    创建label并默认显示系统当前时间,然后使用schedule函数每秒调用我们的自己定义函数

    void Schedule::showTimebyLabel(float dt){
    	time(&tt);
    	now = localtime(&tt);
    	pLabel->setString(CCString::createWithFormat("%d:%d:%d",now->tm_hour,now->tm_min,now->tm_sec )->getCString());
    }

    执行之后就能够看到屏幕中间不停跳动的时间了。事实上到这里schedule函数的学习就差点儿相同了,但我想试着实现非常多游戏里都会有的美术字倒计时,于是结合上一篇精灵类的知识做了一个用美术字实现的系统时间,能实现动态显示系统时间,倒计时就是小意思了。

    实现原理跟在label中显示差点儿相同,用schedule每秒调用给精灵更换图片的函数就能够了。反复代码比較多,我就不贴上来了,来两张效果图吧。

    然后是用到的数字素材,网上找半天没找到,非常多生成工具都必须在MAC下使用,没办法就自己用PS随便弄了下。本来想把这数字素材的plist放上来的可是没找到哪里能够传附件……貌似不能的样子……


  • 相关阅读:
    运行带参数的python脚本
    调用其他python脚本文件里面的类和方法
    快速学会在JSP中使用EL表达式
    理解maven项目的pom.xml文件中,<scope>标签的作用——作用域以及依赖传递
    理解JavaWeb项目中的路径问题——相对路径与绝对路径
    hdu4417(Super Mario)—— 二分+划分树
    hdu4325-Flowers-树状数组+离散化
    poj3321-Apple Tree(DFS序+树状数组)
    数据的离散化
    POJ2676 – Sudoku(数独)—DFS
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4065752.html
Copyright © 2011-2022 走看看