欢迎使用CSDN-markdown编辑器

来源:互联网 发布:华为盒子电视直播软件 编辑:程序博客网 时间:2024/06/03 21:54

HelloWorld.cpp

#include "HelloWorldScene.h"  using namespace cocos2d;  CCScene* HelloWorld::scene()  {      CCScene * scene = NULL;      do       {          // 'scene' is an autorelease object          scene = CCScene::create();          CC_BREAK_IF(! scene);          // 'layer' is an autorelease object          HelloWorld *layer = HelloWorld::create();          CC_BREAK_IF(! layer);          // add layer as a child to scene          scene->addChild(layer);      } while (0);      // return the scene      return scene;  }  // on "init" you need to initialize your instance  bool HelloWorld::init()  {      bool bRet = false;      do       {          //////////////////////////////////////////////////////////////////////////          // super init first          //////////////////////////////////////////////////////////////////////////          CC_BREAK_IF(! CCLayer::init());          //////////////////////////////////////////////////////////////////////////          // add your codes below...          //////////////////////////////////////////////////////////////////////////          // 1. Add a menu item with "X" image, which is clicked to quit the program.          // Create a "close" menu item with close icon, it's an auto release object.          CCMenuItemImage *pCloseItem = CCMenuItemImage::create(              "CloseNormal.png",              "CloseSelected.png",              this,              menu_selector(HelloWorld::menuCloseCallback));          CC_BREAK_IF(! pCloseItem);          // Place the menu item bottom-right conner.          pCloseItem->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width - 20, 20));          // Create a menu with the "close" menu item, it's an auto release object.          CCMenu* pMenu = CCMenu::create(pCloseItem, NULL);          pMenu->setPosition(CCPointZero);          CC_BREAK_IF(! pMenu);          // Add the menu to HelloWorld layer as a child layer.          this->addChild(pMenu, 1);          // 2. Add a label shows "Hello World".          // Create a label and initialize with string "Hello World".          //最外面的 CCDictionary          CCDictionary* pDict = CCDictionary::createWithContentsOfFile("strings.xml");          //第二层 CCDictionary          CCDictionary* pDict_2 = new CCDictionary();          pDict_2->retain();          pDict_2 = (CCDictionary*)pDict->objectForKey("special");          /*         如果在同一个key下面存在<string>hhhhh</string>                                <string>comeontom</string>                                <true></true>         这些关键词,则输出最后一个         */          CCLOG("pDict_2:%s",((CCString*)pDict_2->valueForKey("special_1"))->getCString());          /*第三层  下面说的是Array中包含string         <key>special_2</key>         <array>             <string>comeontom1</string>             <string>comeontom2</string>             <string>comeontom3</string>         </array>         */          CCArray* pArray2 = new CCArray();          pArray2->retain();          pArray2 = (CCArray*)pDict_2->objectForKey("special_2");          for (int i = 0;i < pArray2->count();i++)          {              CCLOG("pArray2%i:%s",i+1,((CCString*)pArray2->objectAtIndex(i))->getCString());          }          /*第三层  下面说的是Array中包含string          <key>special_3</key>         <array>             <integer>45.0</integer>             <integer>3</integer>             <integer>43.444</integer>         </array>         */          CCArray* pArray3 = new CCArray();          pArray3->retain();          pArray3 = (CCArray*)pDict_2->objectForKey("special_3");          for (int i = 0;i < pArray3->count();i++)          {              CCLOG("pArray3%i:%s",i+1,((CCString*)pArray3->objectAtIndex(i))->getCString());          }          /*第三层         <key>special_4</key>         <real>多媒体</real>         */          CCLOG("pDict_2:%s",((CCString*)pDict_2->valueForKey("special_4"))->getCString());          /*第三层         <key>special_5</key>         <false></false>         */          CCLOG("pDict_2:%s",((CCString*)pDict_2->valueForKey("special_5"))->getCString());          CCLOG("strings.xmlCounts:%d",pDict->count());          CCLOG("pDict:%s",pDict);          CCArray* pArray = new CCArray();          pArray = pDict->allKeys();//把所有的键值付给pArray          for (int i = 0;i < pArray->count();i++)          {              CCLOG("pArray%i:%s",i+1,((CCString*)pArray->objectAtIndex(i))->getCString());          }          CCLabelTTF* pLabel = CCLabelTTF::create(((CCString*)pDict->objectForKey("chinese1"))->getCString(), "Arial", 24);          /*CCLabelTTF* pLabel = CCLabelTTF::create(((CCString*)pArray->objectAtIndex(3))->getCString(), "Arial", 24);*/         // CCLabelTTF* pLabel = CCLabelTTF::create("Hello World", "Arial", 24);          CC_BREAK_IF(! pLabel);          // Get window size and place the label upper.           CCSize size = CCDirector::sharedDirector()->getWinSize();          pLabel->setPosition(ccp(size.width / 2, size.height - 50));          // Add the label to HelloWorld layer as a child layer.          this->addChild(pLabel, 1);          // 3. Add add a splash screen, show the cocos2d splash image.          CCSprite* pSprite = CCSprite::create("HelloWorld.png");          CC_BREAK_IF(! pSprite);          // Place the sprite on the center of the screen          pSprite->setPosition(ccp(size.width/2, size.height/2));          // Add the sprite to HelloWorld layer as a child layer.          this->addChild(pSprite, 0);          bRet = true;      } while (0);      return bRet;  }  void HelloWorld::menuCloseCallback(CCObject* pSender)  {      // "close" menu item clicked      CCDirector::sharedDirector()->end();  }  strings.xml:```xml<?xml version="1.0" encoding="UTF-8"?>  <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">  <plist version="1.0">  <dict>    <key>special</key>    <string>      <dict>          <key>special_1</key>          <string>hhhhh</string>          <string>comeontom</string>          <true></true>          <key>special_2</key>          <array>              <string>comeontom1</string>              <string>comeontom2</string>              <string>comeontom3</string>          </array>          <key>special_3</key>          <array>              <integer>45.0</integer>              <integer>3</integer>              <integer>43.444</integer>          </array>          <key>special_4</key>          <real>多媒体</real>          <key>special_5</key>          <false></false>      </dict>    </string>      <key>chinese1</key>      <string>美好的一天</string>      <key>japanese</key>      <string>良い一日を</string>      <key>spanish</key>      <string>Buen día</string>  </dict>  </plist>  

最后来个总结:
dict:建立字典
key:字典里面的关键词
integer:整形,其实和string、real的功能差不多,起配对作用
real:和integer、string的功能差不多,起配对作用
true:如果这样写,输出的是1
false: 输出的是0
string:和integer、real的功能差不多,起配对作用
array:建立数组

当然了,有兴趣看源码的同学,可以看这个文件:CCFileUtilsCommon_cpp.h(位置:cocos2dx\platform)

0 0
原创粉丝点击