关于cocos2dx 对tiled地图编辑器的使用

本文介绍如何使用Cocos2d-x加载TMX地图文件,并在地图上初始化玩家角色与敌对角色。通过代码示例展示了如何从地图文件中获取角色的起始位置,并设置角色的位置与锚点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        CC_BREAK_IF(! CCLayer::init());
		count=0;
        _tiled=CCTMXTiledMap::create("tiled.tmx");
		this->addChild(_tiled);
		//获取英雄的对象层,再根据层获取某英雄的对象
		CCTMXObjectGroup *object =_tiled->objectGroupNamed("hero");
		CCDictionary *spawnPoint=object->objectNamed("hero1");
		winsize =CCDirector::sharedDirector()->getWinSize();
		int px=spawnPoint->valueForKey("x")->floatValue();
        int py=spawnPoint->valueForKey("y")->floatValue();
		//CCLog("x=%f,y=%f",px,py);
		_player=CCSprite::create("Player.png");
		CC_BREAK_IF(!_player);
		_player->setAnchorPoint(CCPoint(0,0));
		_player->setPosition(ccp(px,py));

		//获取所有敌人位置,再其中创建敌人
		object=_tiled->objectGroupNamed("enemy");
		for(int i=0;i<int(object->getObjects()->count());i++)  
		{  
			CCDictionary *enemy=(CCDictionary *)object->getObjects()->objectAtIndex(i);  
			if(enemy->valueForKey("n")->intValue()==1)  
			{  
				CCSprite *s=CCSprite::create("enemy.png");  
				float x=enemy->valueForKey("x")->floatValue();  
				float y=enemy->valueForKey("y")->floatValue();  
				s->setPosition(ccp(x,y));  
				s->setAnchorPoint(CCPoint(0,0));  
				_tiled->addChild(s,4);  
				CCActionInterval *move=CCMoveBy::create(2,CCPoint(_player->getPosition().x-s->getPosition().x>0?10:-10,_player->getPosition().y-s->getPosition().y>0?10:-10));//   
				CCFiniteTimeAction *func=CCCallFuncN::create(this,callfuncN_selector(HelloWorld::goon));  
				s->runAction(CCSequence::create(move,func,NULL));  
			}  
		}  

代码下载地址 : http://download.youkuaiyun.com/detail/five50/6829985

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值