zoukankan      html  css  js  c++  java
  • 1.Cocos2dx 3.2中vector,ValueMap,Touch触摸时间的使用.iconv字符编解码

    
    1. Cocos2dx3.2以后使用Vector<T>取代了CCArray

      案比例如以下:

    头文件:T02Vector.h

    #ifndef __T02Vector_H__

    #define __T02Vector_H__

     

    #include "T32.h"

     

    class T02Vector : public Layer

    {

    public:

        CREATE_FUNC(T02Vector);

     

        //Cocos2dx3.2以后使用Vector取代了CCArray

        Vector<Sprite*> _arr;

     

        bool init();

    };

     

    #endif

    编写:T02Vector.cpp

    #include "T02Vector.h"

     

    //in cocos3.2 Vector取代CCArray

    //假设不是Ref的子类。那不能用Vector。应该用std::vector

    bool T02Vector::init()

    {

        Layer::init();

        Sprite* sprite = Sprite::create();

       

        //添加元素

        _arr.pushBack(sprite);

     

        //遍历

        Vector<Sprite*>::iterator it;

        for (it = _arr.begin(); it != _arr.end(); ++it)

        {

            Sprite* s = *it;

        }

        for (auto it = _arr.begin(); it != _arr.end();++it)

        {

        

        }

     

        for (auto it: _arr)

        {

     

        }

     

        //从后往前遍历

        for (auto it = _arr.rbegin(); it != _arr.rend();++it)

        {

     

        }

     

        //删除

        _arr.eraseObject(sprite);

     

        return true;

    }

    2 Map的使用方法(注意字符编解码的第三方库有:iconvcocos中集成的有这方面的功能)

    头文件:T03Map.h

    #ifndef __T03Map_H__

    #define __T03Map_H__

     

    #include "T32.h"

    class T03Map : public Layer{

    public:

        CREATE_FUNC(T03Map);

        bool init();

    };

     

    #endif

    编写:T03Map.cpp

    #include "T03Map.h"

     

    /*

         ValueMap是用来取代cocos2d.xCCDictionary

    */

    bool T03Map::init()

    {

        Layer::init();

     

        //内容的载入

        ValueMap& vm = FileUtils::getInstance()->getValueMapFromFile("about.xml");

       

        //CCDictionary* dict = CCDictionary::createWithContentsOfFile("about.xml");

        //const CCString* x = dict->valueForKey("x");

        //x->intValue();

     

        //查找

        auto it = vm.find("aaa");

        if (it == vm.end())

        {

            CCLog("can not find aaa");

        }

     

        it = vm.find("people3");

        it->first;   //key:的类型是std::string

        it->second;  //value:的类型是Value。相对cocos3.2.3CCString

        CCLog("key is %s, value is %s", it->first.c_str(), it->second.asString().c_str());

     

        CCLog("............................end");

     

        vm["中文"] = "bbb";

     

        CCLog("........start walk over");

        //遍历

        for (auto it = vm.begin(); it != vm.end();++it)

        {

            CCLog("key is %s,value is %s",it->first.c_str(),it->second.asString().c_str());

        }

        CCLog("..........................end");

     

        FileUtils::getInstance()->writeToFile(vm, "new.xml");

     

    #if 0

        // C++11

        for (auto it : vm)

        {

            it.first;

            it.second;

        }

     

        // 插入

        vm["aa"] = 10;

     

        // 訪问,这样的訪问有副作用。假设bb节点不存在,它会创建一个bb节点

        Value& v = vm["bb"];

        v = 100;

     

        vm["bb"] = false;

    #endif

        return true;

    }

    用到的about.xml例如以下:

    <?xml version="1.0" encoding="UTF-8" ?>

    <plist>

    <dict>

    <key>people1</key>

    <string>许佳音工作室出品</string>

    <key>people2</key>

    <string>总监:许佳音</string>

    <key>people3</key>

    <string>程序:姜博</string>

    <key>people4</key>

    <string>美术:马俊</string>

    <key>people5</key>

    <string>改编:班级</string>

    </dict>

    </plist>

    3  T04Label的使用方法

    头文件:T04Label.h

    #ifndef __T04Label_H__

    #define __T04Label_H__

     

    #include "T32.h"

    class T04Label :public Layer{

    public:

        CREATE_FUNC(T04Label);

     

        bool init();

    };

     

    #endif

    编写:T04Label.cpp

    #include "T04Label.h"

     

    bool T04Label::init()

    {

        Layer::init();

    查看全文

  • 相关阅读:
    具有快表的地址变换机构
    npm更换淘宝镜像
    内存扩充技术
    内存管理的概念
    内存的基础知识
    102. 二叉树的层序遍历
    104. 二叉树的最大深度
    206. 反转链表
    mysql 多字段查询,全局搜素
    java 处理html转义字符
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/6821533.html
  • Copyright © 2011-2022 走看看