【问题标题】:Cocos2d-x adding objects to isometric tilemapCocos2d-x 将对象添加到等距平铺地图
【发布时间】:2013-12-18 02:10:52
【问题描述】:

我正在使用 cocos2d-x 制作带有等轴测地图的游戏(类似于帝国时代的游戏,但更简单)。我有资源、树木等的“默认”地图,用户应该能够将新对象(建筑物)放置到地图上。还有一个问题:对象的 z 顺序。当我添加新对象时,它会遍历地图上的所有图块:

Image

用户添加的建筑物(农场)不应越过树,因为它位于树的“后面”。我正在将新对象作为子精灵添加到地图中:

CCSprite* tmpCastle=CCSprite::create("castleMenu.png");
tmpCastle->setPosition(touchLocation);
tileMap->addChild(tmpCastle);

我不知道如何解决这个问题。

【问题讨论】:

    标签: cocos2d-x


    【解决方案1】:

    我在几个月前开发的一个项目中遇到了类似的问题。我就是这样解决的:

    1- 根据位置动态计算 z

    2- 将锚点设置为 ccp(0.5, 0)(因为大多数项目都从中心底部开始,例如树)

    3- xy 坐标较小的对象是上面的项目。

    所以在你的精灵之后添加以下代码:

    tmpCastle->setAnchorPoint(0.5, 0);
    
    int z = (TILEMAP_WIDTH - tmpCastle->getPositionX()) + (TILEMAP_HEIGHT
    - tmpCastle->getPositionY());
    tmpCastle->setZOrder(z);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-04
      • 1970-01-01
      • 2014-09-05
      • 2012-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多