Cocos2d-x将对象添加到等轴测平铺贴图
我正在用cocos2d-x制作一个等距地图游戏(它有点像《帝国时代》游戏,但更简单)。我有“默认”地图资源,树木等,用户应该能够放置新的对象(建筑物)的地图。还有一个问题:物体的z顺序。添加新对象时,它将覆盖地图上的所有平铺: 用户添加的建筑(农场)不应该越过树,因为它在树的“后面”。我正在将新对象作为子精灵添加到贴图的平铺贴图中:Cocos2d-x将对象添加到等轴测平铺贴图,cocos2d-x,Cocos2d X,我正在用cocos2d-x制作一个等距地图游戏(它有点像《帝国时代》游戏,但更简单)。我有“默认”地图资源,树木等,用户应该能够放置新的对象(建筑物)的地图。还有一个问题:物体的z顺序。添加新对象时,它将覆盖地图上的所有平铺: 用户添加的建筑(农场)不应该越过树,因为它在树的“后面”。我正在将新对象作为子精灵添加到贴图的平铺贴图中: CCSprite* tmpCastle=CCSprite::create("castleMenu.png"); tmpCastle->setPosition
CCSprite* tmpCastle=CCSprite::create("castleMenu.png");
tmpCastle->setPosition(touchLocation);
tileMap->addChild(tmpCastle);
我不知道怎么解决这个问题 我在几个月前开发的一个项目中遇到了类似的问题。我就是这样解决的: 1-根据其位置动态计算z 2-将锚点设置为ccp(0.5,0)(因为大多数项目从中间底部开始,例如树) 3-具有较小x和y字词的对象为上述项目 因此,在精灵之后添加以下代码:
tmpCastle->setAnchorPoint(0.5, 0);
int z = (TILEMAP_WIDTH - tmpCastle->getPositionX()) + (TILEMAP_HEIGHT
- tmpCastle->getPositionY());
tmpCastle->setZOrder(z);