分类: C/C++
2015-03-16 14:23:45
原文地址:Cocos2d 代码片段 作者:linux_wuliqiang
//---------------------------------------------------------------------------
// 按钮添加
// 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