Chinaunix首页 | 论坛 | 博客
  • 博客访问: 378681
  • 博文数量: 466
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-03-16 13:59
文章分类

全部博文(466)

文章存档

2015年(466)

我的朋友

分类: C/C++

2015-03-16 14:23:45

原文地址:Cocos2d 代码片段 作者:linux_wuliqiang

//---------------------------------------------------------------------------

// 按钮添加

// add buttons
CCSprite* spriteNormal;
CCSprite* spriteClick;
spriteNormal = CCSprite::spriteWithSpriteFrame(cacheCommon->spriteFrameByName("ban04_1.png"));
spriteClick = CCSprite::spriteWithSpriteFrame(cacheCommon->spriteFrameByName("ban04_2.png"));

CCMenuItemSprite* backIcon = (CCMenuItemSprite*)CCMenuItemSprite::itemFromNormalSprite(spriteNormal1,spriteClick1, this, menu_selector(MapUI::onBackIcon));
backIcon->setPosition(ccp(411 * gDisplayRatio,37 * gDisplayRatio));

CCMenu *menu = CCMenu::menuWithItems(bossIcon,backIcon,NULL);
menu->setPosition(CCPointZero);
this->addChild(menu);

// Scene 切换
CCTransitionFade* trans = CCTransitionFade::transitionWithDuration(1.0f,MapUI::scene());
 CCDirector::sharedDirector()->replaceScene(trans);


// 屏幕大小
CCSize size = CCDirector::sharedDirector()->getWinSize();

//---------------------------------------------------------------------------

// 精灵加载
bg1 = CCSprite::spriteWithFile("UI/StartScene_bg.png");


CCSprite* imageStoryEnd;
string tstr="Events/Story_end";
tstr=tstr.append(suffix_Language).append(suffix_retina).append(".png");
imageStoryEnd = CCSprite::spriteWithFile(tstr.c_str());


//---------------------------------------------------------------------------

// 定时器设置
this->schedule(schedule_selector(ResumeTest::resumeGrossini), 3.0f); // 开启一个定时器
this->unschedule(schedule_selector(ResumeTest::resumeGrossini)); // 关闭定时器



//---------------------------------------------------------------------------
// 缓冲池的使用
CCTextureCache::sharedTextureCache()->removeUnusedTextures();
CCTextureCache::sharedTextureCache()->addImage("UI2/GUI-hd.png"); // 存储 png 图片纹理

CCSpriteFrameCache * cacheCommon = CCSpriteFrameCache::sharedSpriteFrameCache();
cacheCommon->addSpriteFramesWithFile("xxxxx.plist"); // 存储 精灵动画帧

// 得到 CCSpriteFrameCache 中的动作帧数据
CCSprite* testSprite01 = CCSprite::spriteWithSpriteFrame(cacheCommon->spriteFrameByName("test01.png"));
CCSprite* testSprite01 = CCSprite::spriteWithSpriteFrame(cacheCommon->spriteFrameByName("test01.png"));

 生成 xxxxx.plist  xml 文件的工具:


//---------------------------------------------------------------------------
// 文字的显示
string tmpLabel="";
switch (language_type) {
case LANGUAGE_EN:
tmpLabel = "Are you sure to quit?";
break;
case LANGUAGE_CHS:
tmpLabel = "您确定要退出吗?";
break;
case LANGUAGE_CHT:
tmpLabel = "您確定要退出嗎?";
break;
case LANGUAGE_JP:
tmpLabel = "ゲームを終了しますか?";
break;
case LANGUAGE_KR:
tmpLabel = "??? ?????????";
break;
default:
break;
}

// text
CCLabelTTF* warningLabel = CCLabelTTF::labelWithString(tmpLabel.c_str(),CCSizeMake(480.0 * gDisplayRatio,40.0 * gDisplayRatio),CCTextAlignmentCenter,Font_Text,FontSize_Normal);
warningLabel->setPosition(ccp(240 * gDisplayRatio,191 * gDisplayRatio));/////
this->addChild(warningLabel);

//---------------------------------------------------------------------------

日志输出调试:

CCLOG(@"********:xxxxx");  // 注意,字符串前面一定要加上 @ 标志,要不然,会引起死机。

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

NSString:的操作,

要注意区分 utf-8 的字符串的操作, 要不然在操作的时候有时候会引起死机


 [NSString stringWithUTF8String"xxxxx"]  // 初始化一个 utf-8 的字符串数据

[str UTF8String]    // 将 UTF-8 格式的字符串转换为 C字符串

[str cString]  //  将普通格式的字符串转换为 C字符串  


//---------------------------------------------------------------------------


// 数组操作


// 创建数组, 自己管理内存

NSMutableArray* path = [[NSMutableArray alloc]init] ; 

NSMutableArray* path =[[NSMutableArray alloc] initWithCapacity:600];  

[path release];

path = nil;


// 创建数组, autorelease 对象

NSMutableArray* _path = [NSMutableArray arrayWithCapacity:Level+1];





// 添加元素

CGPoint pt = ccp( x    , y  );

NSValue* value = [NSValue valueWithBytes:&pt objCType:@encode(CGPoint)];

[_path addObject:value ];   


CCLOG(@" step: %d " , [path count] );  // 数组元素个数


[path removeAllObjects] ;  // 删除所有


// 遍历数组

for ( id Obj in _path ) 

{

//********

}

// 遍历数组

for (int i=0; i<tilesArray.count; i++) 

{

return [tilesArray objectAtIndex:i]; 

}



//---------------------------------------------------------------------------

// 地图部分代码

CCTMXTiledMap *map// 地图文件的所有数据信息

CCTMXLayer* layer;  // 地图中的一个层的数据信息

gid: gird id 就是地图某个土块显示的用图片切片 id 

CCTMXLayer---->*tiles_; 存储了地图网格中的所有切片 id 信息



map =  [CCTMXTiledMap tiledMapWithTMXFile:@"test.tmx"] ;

[self addChild:map z:0 tag:kTagTileMap];



CCTMXLayer *map_layer = [map layerNamed:@"youLayerName"];


[map_layer tileGIDAt:ccp(x,y)]   得到地图上 x,y 处显示的图片切片 id 






阅读(170) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~