cocos2d tiledmap


#include "HelloWorldScene.h"

USING_NS_CC;

CCScene* HelloWorld::scene()
{
CCScene *scene = CCScene::create();
HelloWorld *layer = HelloWorld::create();
scene->addChild(layer);
return scene;
}

bool HelloWorld::init()
{
if ( !CCLayer::init() )
{
return false;
}

CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();

//添加地图
map=CCTMXTiledMap::create("map.tmx");
addChild(map);

//获取英雄的对象层
CCTMXObjectGroup *objGroup=map->objectGroupNamed("objHero");
CCDictionary *hero=objGroup->objectNamed("hero");
float x=hero->valueForKey("x")->floatValue();
float y=hero->valueForKey("y")->floatValue();

sp=CCSprite::create("1.png");
sp->setAnchorPoint(CCPointZero);//瓦片地图默认放在左下角。所以需要设置一下。
sp->setPosition(ccp(x,y));
addChild(sp);

//打开触屏开关
this->setTouchEnabled(true);

return true;
}

CCPoint HelloWorld::tileCoordForPosition(CCPoint position)
{
int x = position.x /map->getTileSize().width;
int y = ((map->getMapSize().height * map->getTileSize().height) - position.y) / map->getTileSize().height;
return ccp(x, y);
}

void HelloWorld::ccTouchesBegan(CCSet *pTouches,CCEvent *pEvent)
{
CCTouch* touch=(CCTouch*)(pTouches->anyObject());
CCPoint pos=touch->getLocation();
CCActionInstant *func=CCCallFunc::create(this,callfunc_selector(HelloWorld::judgeCollide));
sp->runAction(CCSequence::create(CCMoveTo::create(1,pos),func,NULL));
}

void HelloWorld::judgeCollide()
{
CCTMXLayer *collisionLayer=map->layerNamed("collisionLayer");
CCPoint tiledPos=tileCoordForPosition(sp->getPosition());
if(collisionLayer->tileGIDAt(tiledPos))
{
CCLOG("%d",collisionLayer->tileGIDAt(tiledPos));
collisionLayer->removeTileAt(tiledPos);
}
}

void HelloWorld::menuCloseCallback(CCObject* pSender)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8)
CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert");
#else
CCDirector::sharedDirector()->end();
#if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
exit(0);
#endif
#endif
}

cocos2d tiledmap,布布扣,bubuko.com

时间: 2024-10-26 02:02:14

cocos2d tiledmap的相关文章

cocos2d Tiledmap使用心得

创建时候: 1:确定地图的行和列 2:确定每个地图块的宽带和高度 关于整个地图的尺寸 地图的宽度=地图块的宽度*列 地图的高度=地图块的高度*行 如果地图是 30行40 列 地图块的尺寸是32*32 整个地图宽度是1280,高度就事960 使用Tiledmap创建地图 1:准备图块 :一定要被某个图块尺寸整除 2:创建地图 3:创建图块 4:地图的编辑区域编辑地图 5:保存地图为tmx文件 6:加载图层 代码:auto 图层名字= TMXTiledMap::create("m01.tmx&quo

cocos2d tiledmap 获取属性

CCTMXTiledMap *map=CCTMXTiledMap::create("1.tmx"); addChild(map); //fight juchi CCArray* pChildrenArray=map->getChildren(); CCSpriteBatchNode* child=NULL; CCObject* pObject=NULL; CCARRAY_FOREACH(pChildrenArray,pObject) { child=(CCSpriteBatchN

cocos2dx A* + tiledMap

本文转自:http://blog.csdn.net/w18767104183/article/category/1757765 前面一章讲了cocos2dx 中使用A星算法 这章中讲 A*结合tiledmap 先看下效果图 图有点丑,忍受下 绿色的块 表示人物的行走的路线(A*算法的结果) 红色部分 表示A*算法搜寻过的点(越少,速度越快) 黑色的部分(其实是无色块,因为背景是黑色的) 表示障碍物 这张图是用tiledmap做出来的, 看看里面的内容 可以看到 我把不能通过的地区的图块给删了 t

解决Cocos2d-js 在使用 TiledMap时的黑线问题

在项目中,加载TiledMap时,如果当前显示分辨率与设计分辨率不符,做出的地图上会有黑线产生.屏幕移动时,也会有黑线. 解决的方式很简单.找到配置文件  CCConfig.js  一般情况是在 rameworks/cocos2d-HTML5/cocos2d/core/platform 下面 找到 cc.FIX_ARTIFACTS_BY_STRECHING_TEXEL = 0; 这一行. 将0改成1 注意:网上可以找到的解决方案中有 设置 setAntialiasTexParameters().

cocos2d::Vector

v3.0 beta加入 定义在"COCOS2DX_ROOT/cocos/base"的"CCVector.h"头文件中. template<class T>class CC_DLL Vector; cocos2d::Vector<T>是一个封装好的能动态增长顺序访问的容器. cocos2d::Vector<T>中的元素是按序存取的,它的低层实现数据结构是标准模版库中的标准顺序容器std::vector. 在Cocos2d-x v3.

Cocos2D中Action的进阶使用技巧(一)

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;) 大家对Cocos2d中动作的使用大概都非常清楚了,事实上本身action的概念也不复杂. 可是在某些情况下,一般的动作不能满足我们需求的时候,我们就必须使用更高级的Action方法来解决这个问题. 比方,串行化(不是序列化哦,这是两个全然不同的概念)不同Action的执行-有些童鞋可能会说非常easy,直接用CCActionSequence不就结了,可是等等我

Cocos2d入门--3-- 向量的应用

 Cocos2d入门--3-- 向量的应用 小球向一个方向持续运动的Demo HelloWorldScene.h ...... //设置一个protected的属性 protected: cocos2d::Vec2 _vec; ...... HelloWorldScene.cpp //这个是通过随机数设置向量的方向 _vec.set(random(-0.1f, 1.0f), random(-1.0f, 1.0f)); //通过normalize这个标准化函数,能够使得向量的大小为1 _vec.n

Cocos2d入门--1-- 初涉相关属性或代码

 Cocos2d入门--1-- 初涉相关属性或代码 Cocos2d vision:  cocos2d-x-3.8.1 万丈高楼,起于累土.对于一个游戏框架的学习,其实在于框架功能的使用积累,学会了如何在cocos2d游戏引擎的基础上使用它提供的各种功能,并灵活运用, 以及学会查阅Cocos2d官方提供的API文档.相信自己也能开发出自己喜爱或者让别人羡慕的游戏. 目录: 1>认识origin和visibleSize以及cocos2d的基础绘画类DrawNode的简单实用 2>认识 CCLOG(

UITableViewController 滚动引起的cocos2d动画暂停问题的解决

UITableViewController 滚动引起的cocos2d动画暂停问题的解决 之前在使用UITableViewController进行滚动时,cocos2d的动画会暂停,直至滚动完毕才会继续动画. 后来发现可以这样解决,想要了解更多,请查阅NSRunLoop相关知识. // .h NSTimer* m_timer; // .m- (void)updateCCDirector { [[CCDirector sharedDirector] drawScene]; if (!self.tab