该Tiled地图制作拿到项目~~这是偷懒,为了直接复制后写来
cocos2d::CCSprite* ninja;
cocos2d::CCTMXTiledMap* ?tileMap;
然后.cpp中增加tileMap = CCTMXTiledMap::create("MyTileMap.tmx");
CCTMXLayer* backLayer = tileMap->layerNamed("Tile Layer 1");
CCAssert(backLayer, "Can not find layer named by (Tile Layer 1)");
this->addChild(tileMap); // 地圖加到layer上面
2.設置人物的初始位置
CCTMXObjectGroup* og = tileMap->objectGroupNamed("spritePositions");
CCDictionary* posInfoDict = og->objectNamed("ninjaBirthPoint");
int x = posInfoDict->valueForKey("x")->intValue();
int y = posInfoDict->valueForKey("y")->intValue();
ninja = CCSprite::create("Player.png");
ninja->setPosition(ccp(x, y));
tileMap->addChild(ninja);
3.將主角移動到地圖的中間
this->setMapPosForView(ccp(x, y));
void HelloWorld::setMapPosForView(cocos2d::CCPoint playerPos){
CCPoint orig = playerPos;
CCPoint dest = ccp(WIN_WIDTH / 2, WIN_HEIGHT / 2);
CCPoint distance = ccpSub(dest, orig);
CCPoint newMapPos = ccp(0, 0) + distance;
newMapPos.x = (newMapPos.x > 0?
0:newMapPos.x);
newMapPos.y = (newMapPos.y > 0?
0:newMapPos.y);
newMapPos.x = (newMapPos.x < WIN_WIDTH - MAP_WIDTH??
WIN_WIDTH-MAP_WIDTH:newMapPos.x);
newMapPos.y = (newMapPos.y < WIN_HEIGHT - MAP_HEIGHT??
WIN_HEIGHT - MAP_HEIGHT:newMapPos.y);
tileMap->setPosition(newMapPos);
5.用:ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)來使物體移動
void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){
CCPoint touchPos=pTouch->getLocation();
touchPos=tileMap->convertToNodeSpace(touchPos);
CCPoint origPos=ninjia->getPosition();
CCPoint diff=touchPos-origPos;
CCPoint ninjaDiff = ccp(0, 0);
if (abs(diff.x) > abs(diff.y)){
if (diff.x > 0){
ninjaDiff.x = tileMap->getTileSize().width;
}
else
{
ninjaDiff.x = -tileMap->getTileSize().width;;
}
}
else{
if (diff.y > 0){
ninjaDiff.y = tileMap->getTileSize().height;
}
else
{
ninjaDiff.y = -tileMap->getTileSize().height;
}
}
CCPoint newPos = origPos + ninjaDiff;
ninja->setPosition(newPos);
tileMap->setMapForView(newPos);
總結
以上是生活随笔為你收集整理的该Tiled地图制作拿到项目~~这是偷懒,为了直接复制后写来的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到老公前女友是什么征兆
- 下一篇: 梦到自己溺水是什么意思